开发者

HowTo update/modify LINQ EntitySet?

In my LINQ to SQL generated classes I have some classes containing EntitySets.

Everything looks great until I need to modify the EntitySet (add, delete some relationships). I thought that it was going to work doing something like:

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

Then when I try to submit changes, I may get a duplicate key excepti开发者_开发知识库on, that means it is not clearing the old actions before assigning the new ones and some of them may be repeated; do I have to do it manually ?

What is the best way to do this (update the EntitySet) ? Suggestions?

Thnx


It appears that I have to do it manually. I mean first delete the relationships (EntitySet):

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

And after that, assign the "new" EntitySet:

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

I made it work doing that but... DO I have to apply 2 SubmitChanges() to database? Isn't it a better way to do it?


Wouldn't this be easier?

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


In the SQL database relationships did you have cascade delete set? You need this set and the classes regenerating to resolve this.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜