我有一个分发表,其中包含一个分配ID的pk和一个收件人表,其中RecipientID为pk。此表曾经是1对多,但现在需要使用中间表更改为多对多。
我有一个EntityDataSource,它提供了一个listview,允许简单地操作分发列表。
<asp:EntityDataSource ID="edsRecipients" runat="server" ConnectionString="name=DistributionEntities" DefaultContainerName="DistributionEntities"
EnableDelete="True" EnableFlattening="False" EnableInsert="True" EnableUpdate="True" EntitySetName="Recipients"
Where="it.[DistributionID]=@DistributionID">
<WhereParameters>
<asp:ControlParameter ControlID="ddlSelectDistributionList" ConvertEmptyStringToNull="true" DbType="Int32" Name="DistributionID" />
</WhereParameters>
</asp:EntityDataSource>
有什么方法可以更改where子句以使用新表如果需要,新表名为DistributionRecipients。如果没有,我可以通过某种方式将EF类的Distribuion.Recipients绑定到后面代码中的List视图,该视图将使用自动编辑和删除功能,还是需要添加代码来处理它们?
答案 0 :(得分:1)
您可以修改您的EntityDataSource的 where 属性,以子查询分布导航属性:
EXISTS(SELECT Distributions.DistributionID FROM it.Distributions WHERE Distributions.DistributionID=@DistributionID)