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

Cha*_*had 5 asp.net listview entity-framework entitydatasource entity-framework-4

我有一个分发表,其中包含一个分配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>  
Run Code Online (Sandbox Code Playgroud)

有没有办法可以更改where子句以使用新表如果需要,新表将命名为DistributionRecipients.如果没有,我可以通过某种方式将EF类的Distribuion.Recipients绑定到后面代码中的List视图,它将使用自动编辑和删除功能,还是需要添加代码来处理它们?

Sam*_*ang 1

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

EXISTS(SELECT Distributions.DistributionID FROM it.Distributions WHERE Distributions.DistributionID=@DistributionID)
Run Code Online (Sandbox Code Playgroud)