asp.net - 关系从一对多变成多对多需要更新listview

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

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

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

最佳答案

您可以修改 在哪里 EntityDataSource 的属性以包含 上的子查询分布导航属性 收件人实体:

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

关于asp.net - 关系从一对多变成多对多需要更新listview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6425641/

相关文章:

c# - 您无权查看此目录或页面。 (ASP.NET 网站到 Azure)

asp.net - 如何使 GridView ASP.NET 控件看起来像 SharePoint 列表?

c# - EF 4.0 从 MetadataWorkspace 获取 EntitySetMappings

android - 在哪里可以找到 Android 图标来指示点击列表行时还有更多内容?

c++ - Qt:如何处理 QAbstractItemView 的焦点更改

c# - JQuery 将值设置为自定义服务器控件

javascript - 获取所有以 "Max"结尾的表单元素作为 id 名称

c# - 如何使用 Entity Framework 6 自定义鉴别器列的名称、长度和值

c# - 获取未结发票的 LINQ 查询

c# - 如何在 C#winform 中将列表项添加到 ListView?