处理多对多 - 实体框架

时间:2011-01-18 12:59:17

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

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

所以,我有一个PayeeCategory链接表,一个PayeeId和一个CategoryId。

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

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

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

我如何在单一的Linq声明中做到这一点?

然后,当数据回来时......我将如何保存数据?我是否必须删除所有关系,然后根据List<>重新添加它们。价值我回来了?

希望有人可以指导我。

1 个答案:

答案 0 :(得分:1)

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

Linq query assistance