2013-04-12 3 views
1

각 테이블에 대해 Key 값이 있으므로 내 질문은 어떻게 Key 속성을 얻을 수 있습니까? 내가 파라메터에있는 객체를 검색하고이 업데이트 된 객체를 통해 테이블을 업데이트하려고합니다. 테이블에서 물건을 어떻게 찾을 수 있습니까?Linq to Sql- 일반 작업 업데이트를 구축 할 수 있습니까?

public static void Update<TEntity>(TEntity UpdatedObject) where TEntity : class 
     { 
      DatabaseLinqDataContext ClientLinq = new DatabaseLinqDataContext(Patch); 
      ClientLinq.GetTable<TEntity>()// I want to search that object i got in the paramater and update it. how do I find my object from the table? 
      ClientLinq.SubmitChanges(); 
     } 

어떤 아이디어가 있습니까? 이 문제를 해결하는 올바른 방법은 무엇입니까?

이 조치는 비즈니스 로직 계층에 기록됩니다.

+0

왜 기본 linq-to-SQL 동작을 다시 작성 하시겠습니까? – Pleun

답변

0

몇 가지 사례가 있습니다.

엔티티 인스턴스가이 datacontext에 의해 이전에로드 된 경우 SubmitChanges를 호출하기 만하면됩니다. 다른 작업은 필요하지 않습니다 (모든 수정 된 인스턴스는 그 시점에 업데이트됩니다).

엔티티 인스턴스가 이전에 다른 데이터 인터페이스에 의해로드 된 경우 추적되지 않는 새 복사본을 만들어야하며 다음 사례를 따라야합니다. 엔티티 인스턴스가 데이터 컨텍스트에 의해로드 (또는 인스턴스 위에서 복사본입니다)되지 않은 경우

, 당신은 전화를하는 것이 좋을 것이다,

//attach the changes to the tracked object graph 
dataContext.GetTable<T>().Attach(t, true); 
    //if type uses optimistic concurrency, then you need to refresh 
    //load the "original" state for the tracked object graph 
dataContext.Refresh(t, RefreshMode.KeepCurrentValues); 
dataContext.SubmitChanges(); 

를 호출해야 또는 :

dataContext.GetTable<T>().Attach(tChanged, tOriginal); 
dataContext.SubmitChanges(); 
+0

감사하지만 첨부는 무엇을합니까? DB에서 객체를 업데이트 하시겠습니까? –