【问题标题】:Handling Many to Many - Entity Framework处理多对多 - 实体框架
【发布时间】:2026-02-09 19:40:02
【问题描述】:

我有一个 MVC 应用程序,我正在构建一个学习项目。我有一张带有收款人的表格,还有一张带有类别的表格。某些收款人可以进行某些类别的交易。例如,收款人 A 可以向 A、B 和 C 类付款。收款人 B 可以向 B、C 和 D 类付款。

所以,我有一个 PayeeCategory 链接表,其中包含一个 PayeeId 和一个 CategoryId。

因此,请查看收款人可以进行交易的类别,这是从 PayeeCategory 中选择的简单方法,其中 PayeeId = this.PayeeId。然后我加入 Category 表以获取类别名称。

在视图中,当我编辑一个 Payee 时,我需要显示所有类别的列表,并允许用户选择或取消选择当前 Payee 关联的类别。

因此,在我的 ViewModel 中,我有一个 categorySelectableItems 列表,其中可能包含 CategoryId、DisplayName 和一个 Selected 布尔字段。要获取数据,我需要从类别中选择,LEFT JOIN PayeeCategory,其中 PayeeCategoryId 为 null,将 Selected 设置为 false,否则设置为 true。

我将如何在单个 Linq 语句中做到这一点?

那么,当数据返回时……我将如何保存数据?我是否必须删除所有关系,然后根据返回的 List 值重新添加它们?

希望有人可以指导我。

【问题讨论】:

    标签: entity-framework asp.net-mvc-2 linq-to-entities


    【解决方案1】:

    这在另一个问题中得到了回答。

    Linq query assistance

    【讨论】: