我的数据库有一个 ADO .Net 实体数据模型。在这个模型中,我有三个相关的表:“用户”表包含 UserId 和其他详细信息。“Run”表包含 RunId、ApproverId 和其他详细信息 “RunToUser”包含 UserId 和 RunId 列
关系如下: Users.UserId 与 Run.ApproverId 是一对一的关系 User.UserId 与 RunToUser.UserId 是多对多 Run.RunId 与 RunToUser.RunId 是多对多
在实体模型中,这表示为具有 2 个独立关系的两个表。用户和运行之间的一对一关系和多对多关系。
我有一个 ASP.net Formview,我想在其中编辑运行中的数据以及用户中的相关数据。
数据绑定在大多数情况下都有效。但是,当我作为实体数据源绑定到用户表时,它总是使用一对一的关系关联。
如何强制实体数据源使用特定的关系关联,以便将数据从一对一映射绑定到标签,将多对多映射到数据视图?
我在限制记录的 where 子句中尝试了“EXISTS”,但它仍然坚持始终使用一对一并且仅在所有数据绑定控件中显示单个用户。这是用户的实体数据源:
<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>
我假设我需要两个实体数据源,一个用于标签,另一个用于网格视图,但在我知道如何指定关联之前,我不知道如何进一步进行。谢谢,-J