1

次のプロジェクトでASP.NETダイナミックデータを使用したいが、解決できない問題がある。データベースでは、行単位で承認を管理します。たとえば、Contractsテーブルのすべての行を表示することはできません。したがって、契約とユーザーの間に多対多の関係があります。そのため、Dynamic Dataはすべての契約を表示するSelectを実行するたびに、ContractUsersジャンクション・テーブルを調べて、現在のユーザーに表示される契約を確認する必要があります(セッション変数に格納されるUserIDによってフィルタリングされます)。もちろん、これらの接合テーブルはユーザーには見えないようにする必要があります。 デフォルトでは、Dynamic Dataはテーブルのすべての行を返します。したがって、ユーザーが実行するすべてのクエリに対してこの動作をカスタマイズすることは可能ですか? ダイナミックデータをLINQ to SQLとともに使用したいのですが、このタスクがEntity Frameworkを使用して簡単に達成できるようになる場合は、そのことも検討します。ASP.NETダイナミックデータ:特定の行のみにアクセスするアクセス

ご協力いただきありがとうございます。

答えて

0

あなたが照会を完全に制御する必要があるため、動的なデータを使用して手動でデータレベルのセキュリティを追加するために、すべてのLINQクエリを書くべきではありません。それでも依然として動的データを主張しているのであれば、ほとんどのページを自分自身で作成し、動的テンプレートのみを使用することに注意してください。データソースを手動で定義し、ログされたユーザーに基づいて結果をフィルタリングするための条件を正しく渡す必要があります。 LINQからSQLへ加え

はジャンクションテーブルを隠すことができないとエンティティフレームワークは、接合テーブルは、多対多の関係のための2つだけFKSが含まれている場合にのみことを行うことができます。このテーブルにアプリケーションで使用する他の列が含まれている場合は、他のエンティティとしてマップする必要があり、動的データではエンティティとして表示されます。

動的なデータでは、Webインタフェースを介してデータベースへのアクセスを提供する必要がありますが、何を記述することは簡単なシナリオではありません簡単なアプリケーションを迅速に作成するための技術です。エンティティタイプごとに異なるレコード認可が必要です。それはおそらく、カスタムエンティティテンプレートを作成する必要があります動的データでは、このようなソリューションを実装

+0

私はダイナミックデータを使用していない場合、私はまだすべてこれを自分で実装する必要があります。 Dynamic Dataは、少なくとも使用するための優れたフレームワークだと思いました。 – chrinetr

+0

はい、あなたはそれを自分で実装する必要があります。 –

+0

これは、私が実装を回避することができないので、不利ではありません。しかし、おそらくダイナミックデータは、他のいくつかの点でもっと楽になります。 – chrinetr

1

。本当に簡単ではありませんが、一度やってしまえば、ページテンプレートの編集だけでカスタムページを作成する必要はありません。

私は、S.J.Naughtonによって行われたDDの優れた作業をチェックし、彼のblogで発表したことを本当に役立つと思います。

グリーティング、F.

関連する問題