データベース用の ADO .Net Entity Data Model があります。このモデルには、関連する 3 つのテーブルがあります。 UserId とその他の詳細を含む「Users」テーブル。RunId、ApproverId およびその他の詳細を含む「Run」テーブル UserId および RunId 列を含む「RunToUser」
関係は次のとおりです。 Users.UserId は Run.ApproverId との 1 対 1 の関係です User.UserId は RunToUser.UserId との多対多です Run.RunId は RunToUser.RunId との多対多です
エンティティ モデルでは、これは 2 つの別個のリレーションシップを持つ 2 つのテーブルとして表現されます。Users と Run の間の 1 対 1 の関係と多対多の関係。
RunのデータとUsersの関連データを編集したいASP.net Formviewがあります。
ほとんどの場合、データバインディングは機能しています。ただし、ユーザー テーブルにエンティティ データ ソースとしてバインドすると、常に 1 対 1 の関連付けが使用されます。
1 対 1 マッピングからラベルへ、多対多マッピングからデータビューへのデータをバインドできるように、entitydatasource に特定の関係関連付けを強制的に使用させるにはどうすればよいですか?
レコードを制限するwhere句で「EXISTS」を試しましたが、常に1対1を使用することを主張し、すべてのデータバインドコントロールで単一のユーザーのみを表示します。ユーザーのエンティティデータソースは次のとおりです。
<asp:EntityDataSource ID="edsUsers_DET" runat="server"
ConnectionString="name=MyEntities" DefaultContainerName="MyEntities"
EntitySetName="Users"
Where="EXISTS(SELECT VALUE p FROM it.Run AS p WHERE p.RunID = @RunID)" >
<WhereParameters>
<asp:ControlParameter ControlID="fvRun" Name="RunID" Type="Int32" />
</WhereParameters>
</asp:EntityDataSource>
ラベル用とグリッドビュー用の 2 つのエンティティ データ ソースが必要になると思いますが、関連付けを指定する方法を決定するまで、先に進む方法がわかりません。Thx、-J