在LINQ to SQL生成的类中,我有一些包含EntitySets的类。
一切看起来都很棒,直到我需要修改EntitySet (添加、删除一些关系)。我认为这样做是可行的:
User.Actions = newUserActions; //This is how I used it with NHibernate然后,当我尝试提交更改时,我可能会得到一个重复的键异常,这意味着在分配新的操作之前,它没有清除旧的操作,其中一些操作可能会重复;我必须手动完成吗?
执行此操作的最佳方法是什么(更新EntitySet)?有什么建议吗?
Thnx
发布于 2010-02-17 12:51:45
看起来我得手动做了。我的意思是首先删除关系(EntitySet):
//The EntitySet is user.UserActions
DataBaseContext.UserActions.DeleteAllOnSubmit(user.UserActions);
DataBaseContext.SubmitChanges();然后,分配“新的”EntitySet:
user.UserActions.Assign(GetSelectedActions());
DataBaseContext.SubmitChanges();我就是这么做的,但是...我必须对数据库应用2个SubmitChanges()吗?这不是一种更好的方法吗?
发布于 2010-02-17 12:59:23
这不是更简单吗?
user.UserActions.Clear();
user.UserActions.AddRange(GetSelectedActions());
context.SubmitChanges();发布于 2011-09-15 18:47:15
在SQL数据库关系中,是否设置了cascade delete集?你需要这个集合和重新生成的类来解决这个问题。
https://stackoverflow.com/questions/2278271
复制相似问题