5

如果我在用户和角色之间存在多对多关系,并且我有一个用户实体的实例和多个角色ID,我可以在没有任何其他角色数据且不进行选择的情况下插入这两种类型的实体之间的关系先说角色?

更新:

我可能还不够清楚。我没有角色的实例,只有角色 ID。是否可以在不先从数据库中填充 Role 对象的情况下创建 User 和 Role 之间的关系?

4

2 回答 2

9

是的,如果您有 ID 并且需要关联它们

你应该能够做到这一点(伪代码)

// how you get this doesn't matter so long as it is in the Context
User user = ...; 
Role role = new Role {Id = 2}; 
// role 2 is in unchanged state
ctx.AttachTo("Roles", role); 
// role 2 is unchanged + added relationship between user and role 2
user.Roles.Add(role); 
ctx.SaveChanges(); 

这里的关键是AttachTo将实体放入未更改状态的 ObjectState 管理器中。只要你不需要修改那个实体,只用if来建立关系,你甚至不需要知道所有的属性值,PK就足够了。

一旦你把它连接起来,你就可以建立关系。

希望这可以帮助

干杯亚历克斯

于 2009-06-02T03:51:47.597 回答
2

如果您不使用数据绑定,当然可以。多对多被映射为相互引用的列表。User.Roles.Add(Role ...) 应该没问题。

于 2009-06-01T20:30:13.203 回答