2009-08-24 5 views
1

ASP.NET MVC 및 Entity Framework를 사용하여 데이터베이스에 변경 사항을 기록해야 할 때 첨부/분리 오류가 발생합니다. 내 저장소에서 기록을 얼마나 여기EF에서 엔티티의 연결/분리에 대해 혼동을 야기 함

우선이다 :이 분리되지 않는 것을

public PublishedApplication GetPublishedApplication(int id) 
{ 
    return dal.ExecuteFirstOrDefault(
     context.PublishedApplication.Include("Customers") 
     .Where(w => w.Id == id)); 
} 

주, 그리고 MergeOption = AppendOnly 있습니다.

public void AttachCustomer(int applicationId, int customerId) 
{ 
    var app = new PublishedApplication{ Id = applicationId}; 
    var customer = new Customer { Id = customerId}; 

    try 
    { 
     context.AttachTo("PublishedApplication", app); 
     context.AttachTo("Customer ", customer); 

     app.Customers.Add(customer); 

     context.SaveChanges(); 
    } 
    catch 
    { 
     throw; 
    } 
} 

이, 물론, 나에게 객체 (응용 프로그램 및 고객)가 이미 부착되어 오류를 제공합니다

또 다른 장소는 내가 응용 프로그램에 고객을 연결하는 제의 repo에 메소드를 호출 객체 컨텍스트

그래서 내 저장소에서 내 개체를 분리해야합니다. 이것은 웹 주위에 "쿼리 관련 정보"를 넣을 필요가 없기 때문에 더 정확합니다. 하지만 어떻게해야합니까? 내 GetPublishedApplication 메소드에서 엔티티를 분리하면 관련 데이터 그래프가 손실되고 그럴 여유가 없습니다. 내 사이트의 그래프가 필요합니다. 병합 옵션 NoTracking도 사용할 수 없습니다.

그래서 어떤 옵션이 있습니까?

미리 감사드립니다.

+0

NoTracking을 사용할 수 없다고합니다. 궁금한 점이 있습니까? 이것은 귀하의 요구에 이상적입니다. –

+0

한 손으로 엔티티를 분리하려는 것 같습니다. 나는. 그래서 당신은 '변경 추적 없음'을 얻습니다. 그렇다면 NoTracking Merge Option을 사용할 수 없다고하셨습니까? 그것은 나에게 이상한 것처럼 보입니다. Alex –

+0

NoTracking을 설정하면 개체의 관련 그래프를 계속 추적하지 않겠습니까? –

답변

관련 문제