2011-05-10 2 views
2

안녕 DataContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, Entity);을 호출하여 데이터 개체를 다시 설정하는 방법이 있습니다.LINQ to SQL의 데이터 엔터티의 개체 상태에 액세스 할 수 있습니까?

메소드에 전달 된 객체 중 일부는 datacontext에서 가져온 객체이며 변경된 객체이지만 일부 객체는 새로운 객체입니다. 새 개체가 datacontext에 첨부되지 않고 삭제됩니다.

첨부되지 않은 개체에 DataContext.Refresh이 호출되면 DataContext에 익숙하지 않으므로 System.ArgumentException이 표시됩니다.

개별 개체의 추적 상태 (여기에 정의 된대로 : http://msdn.microsoft.com/en-us/library/bb386982.aspx)를 얻을 수있는 방법이 있습니까? 수정 된 개체인지 또는 새 개체인지 파악할 수 있습니까?

안부

답변

3

당신은이 작업을 수행 할 수 있습니다 :

var changes = DbContext.GetChangeSet(); 
if(changes.Updates.Contains(EntityToCheck)) 
    //Changed state 
else if(changes.Inserts.Contains(EntityToCheck)) 
    //New state 
else if(changes.Deletes.Contains(EntityToCheck)) 
    //Delete state 
+0

감사합니다, 그것은 훌륭한 방법입니다. –