2010-02-17 3 views
3

내 LINQ to SQL에서 생성 된 클래스에 EntitySets을 포함하는 일부 클래스가 있습니다.LINQ EntitySet을 업데이트/수정하는 방법은 무엇입니까?

EntitySet을 수정해야 (일부 관계 삭제, 삭제) 될 때까지 모든 것이 멋지게 보입니다. 나는이 같은 일을 일 거라고 생각 : 나는 변경 사항을 제출하려고 할 때 그럼, 중복 키 예외가 발생할 수 있습니다

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

, 즉는 새로 할당하기 전에 이전 작업을 취소되지 않음을 의미 그들 중 일부는 반복 될 수있다. 수동으로해야합니까?

이 작업을 수행하는 가장 좋은 방법은 무엇입니까 (EntitySet 업데이트). 제안?

Thnx

답변

2

나는 그것을 수동으로해야만하는 것처럼 보입니다.

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

그리고 그 후

는, "새로운"EntitySet를 할당 : 나는 관계 (EntitySet) 삭제 첫 번째 의미

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

내가하면 해당하지만, 일을 일했다가 ... 내가해야합니까 2 SubmitChanges()를 데이터베이스에 적용 하시겠습니까? 더 좋은 방법이 아닙니까?

+0

이 작업을 수행하는 더 좋은 방법이 없다면 놀랄 것입니다. 그래서 우리는 객체 트리의 변이 된 부분 만 하나의 제출에 제출하고 수동으로 수정하지 않아도됩니다. 아마도 [Automapper] (http://automapper.org/)는 여기에서 사용할 수 있지만 시도하지는 않았습니다. – orad

1

더 쉬워 보이지 않습니까?

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

작동하지 않는 사람이 없습니다. 예 : "이미 사용중인 키가있는 엔티티를 추가 할 수 없습니다." –

0

SQL 데이터베이스 관계에서 계단식 삭제 집합이 있습니까? 이 문제를 해결하려면이 집합과 클래스를 다시 생성해야합니다.

관련 문제