首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HowTo更新/修改LINQ EntitySet?

HowTo更新/修改LINQ EntitySet?
EN

Stack Overflow用户
提问于 2010-02-17 12:19:57
回答 3查看 3.9K关注 0票数 3

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

一切看起来都很棒,直到我需要修改EntitySet (添加、删除一些关系)。我认为这样做是可行的:

代码语言:javascript
复制
User.Actions = newUserActions;   //This is how I used it with NHibernate

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

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

Thnx

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-17 12:51:45

看起来我得手动做了。我的意思是首先删除关系(EntitySet):

代码语言:javascript
复制
//The EntitySet is user.UserActions
DataBaseContext.UserActions.DeleteAllOnSubmit(user.UserActions);
DataBaseContext.SubmitChanges();

然后,分配“新的”EntitySet:

代码语言:javascript
复制
user.UserActions.Assign(GetSelectedActions());
DataBaseContext.SubmitChanges();

我就是这么做的,但是...我必须对数据库应用2个SubmitChanges()吗?这不是一种更好的方法吗?

票数 2
EN

Stack Overflow用户

发布于 2010-02-17 12:59:23

这不是更简单吗?

代码语言:javascript
复制
user.UserActions.Clear();
user.UserActions.AddRange(GetSelectedActions());
context.SubmitChanges();
票数 1
EN

Stack Overflow用户

发布于 2011-09-15 18:47:15

在SQL数据库关系中,是否设置了cascade delete集?你需要这个集合和重新生成的类来解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2278271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档