연결되지 않은 엔티티는 제거할 수 없습니다.
Attach 메소드로 DataClassesDataContext를 연결 해주면됩니다.
void AttachAll( IEnumerable entities, bool asModified )
Boolean 매개 변수를 false로 설정하여 개체에 타임스탬프(RowVersion)가 없음을 나타냅니다
컬렉션을 업데이트하려면 Attach 대신 AttachAll을 호출합니다.
아래코드는 수정/추가/삭제를 동시에 하고 있습니다.
리스트는 클라이언트에서 웹서비스를 통해 서버측에 전달해주고 있습니다
그럼므로 DataClassesDataContext 와는 연결이 끊겨있습니다.
AttachAll 을 사용하여 Data.DocDataClassesDataContext 가 데이터를 관리하게 지정하는 부분입니다.
using (TransactionScope ts = new TransactionScope()) { Data.DocDataClassesDataContext dc = new Data.DocDataClassesDataContext(this.dbconn); //추가 dc.GetTable<Contract.Data.Doc.DocCategory>().InsertAllOnSubmit(DocCategoryList.Where(c => c.IsNew == true)); //수정 dc.GetTable<Contract.Data.Doc.DocCategory>().AttachAll(DocCategoryList.Where(c => c.IsEdited == true), true); //이부분 주석처리하면 오류발생 dc.GetTable<Contract.Data.Doc.DocCategory>().AttachAll((DocCategoryList.Where(c => c.IsDeleted == true))); dc.GetTable<Contract.Data.Doc.DocCategory>().DeleteAllOnSubmit(DocCategoryList.Where(c => c.IsDeleted == true)); dc.SubmitChanges(); ts.Complete(); }
위의 설명보다 더 자세한 MSDN
'LINQ & Entity' 카테고리의 다른 글
[MySql] Entity Framework Entity 사용하기 (0) | 2011.04.26 |
---|---|
[ Oracle Support for Entity Framework 4 ]오라클 엔티티 만들기 (0) | 2011.03.09 |
[Linq Null Value] 빈값 셀렉트 (2) | 2011.03.03 |
DataSet 을 Linq로 쿼리하기 (0) | 2010.10.06 |
[URL]101 LINQ Samples (0) | 2010.04.26 |
dataContext 동시에 insert/ update /delete 진행하기 (0) | 2010.04.06 |
[DataContext.Log] Linq 쿼리 로그보기 (0) | 2010.03.19 |
[UNION]두 시퀀스 연결(LINQ to SQL) (0) | 2010.02.25 |
Func(T, TResult) Delegate 사용해보기 (0) | 2010.02.24 |
scottgu 아저씨 LINQ 쿼리 모음정리 (0) | 2010.02.23 |