我有类User具有类Group
的属性class User {
public int Id {get;set;}
public Group Group {get;set;}
public string Name {get;set;}
}
class Group {
public int Id {get; set;}
[Index(IsUnique = true)]
public string Name {get;set;}
}
现在我正在创建一个User类列表,其中一些可能包含相同的类Group值
示例数据:
var users = new List<User> {
new User {
Name = "user1",
Group = getGroup("admin2",..moreParams)
},
new User {
Name = "user2",
Group = getGroup("admin2",..moreParams)
},
new User {
Name = "admin1",
Group = getGroup("admin2",..moreParams)
},
new User {
Name = "admin2",
Group = getGroup("admin2",..moreParams)
},
};
public Group getGroup(params){
if(_cacheGroups.Any(someRule)){
return _cacheGroups.First(someRule);
}else{
... loading the correct group
}
}
如何阻止实体框架多次保存组
目前的异常消息是
重复输入&#39;用户&#39;关键字&#39; IX_Name&#39;
答案 0 :(得分:0)
您正在为每个Group
创建User
的新实例,其中一些具有相同的Name
,这会导致错误(Name
具有唯一索引)。您必须为每个不同的Group
创建一个实例,然后根据它们分配每个Group
的{{1}}:
User