Sko*_*kog 1 many-to-many entity-framework insert
我是我的数据模型中的两个实体,例如用户和角色,都具有ID字段作为主键。它们之间存在多对多的关系。在数据库中,有三个表:Users,Roles和UsersRoles连接表。
我正在尝试向Users表添加一个新用户:
using(var myContext = new MyContext)
{
var user = new User() { ... };
user.Roles.Add(new Role() { ID = 1 });
}
Run Code Online (Sandbox Code Playgroud)
相同的角色可能已经被其他用户使用,因此,当我尝试添加具有相同角色的新用户时,由于EF尝试向角色表中添加新记录,所以我成为主键冲突。
有什么方法可以告诉实体框架(如果角色已经存在,则不向角色表中添加新记录,而仅更新Users和UserRoles表)?EF 1.0版
提前致谢。
如果角色已经存在于数据库中,则必须通过将角色附加到上下文中来EF告知:
using(var myContext = new MyContext)
{
var role1 = new Role() { ID = 1 };
myContext.Roles.Attach(role1);
var user = new User() { ... };
user.Roles.Add(role1);
myContext.Users.AddObject(user);
myContext.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)
(我希望这在EF 1中也是如此。)
| 归档时间: |
|
| 查看次数: |
3439 次 |
| 最近记录: |