如何更新/修改LINQ EntitySet?

时间:2010-02-17 04:19:57

标签: c# linq linq-to-sql entityset

在我的LINQ to SQL生成的类中,我有一些包含EntitySets的类。

在我需要修改EntitySet(添加,删除一些关系)之前,一切看起来都很棒。 我认为它可以起到类似的作用:

User.Actions = newUserActions;   //This is how I used it with NHibernate

然后,当我尝试提交更改时,我可能会获得重复的密钥异常,这意味着它在分配新的操作之前不会清除旧的操作,并且其中一些可能会重复;我必须手动完成吗?

执行此操作的最佳方法是什么(更新EntitySet)?建议?

日Thnx

3 个答案:

答案 0 :(得分:2)

看来我必须手动完成。我的意思是先删除关系(EntitySet):

//The EntitySet is user.UserActions
DataBaseContext.UserActions.DeleteAllOnSubmit(user.UserActions);
DataBaseContext.SubmitChanges();

然后,分配“新”EntitySet:

user.UserActions.Assign(GetSelectedActions());
DataBaseContext.SubmitChanges();

我做到了这一点,但...... 我必须将2个SubmitChanges()应用于数据库吗? 这不是一个更好的方法吗?

答案 1 :(得分:1)

这不会更容易吗?

user.UserActions.Clear();
user.UserActions.AddRange(GetSelectedActions());
context.SubmitChanges();

答案 2 :(得分:0)

在SQL数据库关系中你有没有级联删除集?你需要这个集合并重新生成类来解决这个问题。