如何在桌子上操作多对多EF

时间:2014-11-26 23:40:56

标签: asp.net-mvc entity-framework

我正在使用ASP.NET MVC,我正在使用Entity Framework。在生成由DataBase First创建的数据库时,我得到了这种关系,如下所示。我的问题是:我如何为特定患者分配角色?

enter image description here

1 个答案:

答案 0 :(得分:1)

这在很大程度上取决于您的项目结构以及您使用的任何设计模式,但以下代码应指向正确的方向。

// query the DB for existing patient/role
var dbContext = new MyDbContext()
var patient = dbContext.Set<Patient>().FirstOrDefault(x => x.PatientID = patientId); 
var role = dbContext.Set<Role>().FirstOrDefault(x => x.RoleID = roleId); 

patient.Roles.Add(role);
dbContext.SaveChanges();

修改

对于患者的新实例,或类似的事情......

var newPatient = new Patient {
                            Name = "NameHere"
                             ....
                            };

newPatient.Roles.Add(role);
dbContext.Entry(newPatient).State = System.Data.EntityState.Added;
dbContext.SaveChanges();