5

我有一个分发表,其中包含一个 pk 的 DistributionID 和一个收件人表,其中 RecipientID 为 pk。该表曾经是一对多,但现在需要使用中间表更改为多对多。

我有一个 EntityDataSource,它提供一个列表视图,允许对分发列表进行简单操作。

<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 绑定到后面代码中的列表视图,这将与自动编辑和删除功能一起使用,还是我需要添加代码来处理它们?

4

1 回答 1

1

您可以修改EntityDataSource的where属性以在 Recipients 实体的 Distributions导航属性上包含子查询:

EXISTS(SELECT Distributions.DistributionID FROM it.Distributions WHERE Distributions.DistributionID=@DistributionID)
于 2011-07-17T13:08:20.410 回答