首页 > 解决方案 > 如何使用实体框架更新多对多表

问题描述

我是 ASP.NET MVC 和实体框架的新手。

我有 3 个表:Employees, Activity, EmployeeActivity{ EmployeeId, ActivityId }。

当用户想要更新数据时,他会EmployeeId从下拉列表和ActivityId下拉列表中更改...

EmployeeActivity在我的模型中不存在导航属性。

现在我想知道如何找到相关行并更新它?

假设存在价值(1, 2)EmployeeActivity我想将其编辑为(3, 4).

我怎样才能找到(1, 2)要更改的?表中没有其他行?

标签: sqlasp.net-mvcentity-framework

解决方案


我希望您提出一个建议,即在您的 ViewModel 中使用一个额外的字段,具有如下字段

OldEmployeeId
EmployeeId
OldActivityId
ActivityId

**Note:** set the same value in identical fields like EmployeeId & OldEmployeeId same to ActivityId and OldActivityId. so when you saving/updating records you have a reference of previously selected value in OldEmployeeId & OldActivityId so it will help you to identify the record and update the value.

另一种选择是,如果您不想采用上述解决方案,则将数据库表 ID 中的一个额外字段作为主键,以便它将参考存储在您需要更新的位置。


推荐阅读