关系从一对多变为多对多需要更新listview

时间:2011-06-21 13:02:50

标签: asp.net entity-framework listview entity-framework-4 entitydatasource

我有一个分发表,其中包含一个分配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视图,该视图将使用自动编辑和删除功能,还是需要添加代码来处理它们?

1 个答案:

答案 0 :(得分:1)

您可以修改您的EntityDataSource的 where 属性,以子查询分布导航属性:

EXISTS(SELECT Distributions.DistributionID FROM it.Distributions WHERE Distributions.DistributionID=@DistributionID)