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
도 사용할 수 없습니다.
그래서 어떤 옵션이 있습니까?
미리 감사드립니다.
NoTracking을 사용할 수 없다고합니다. 궁금한 점이 있습니까? 이것은 귀하의 요구에 이상적입니다. –
한 손으로 엔티티를 분리하려는 것 같습니다. 나는. 그래서 당신은 '변경 추적 없음'을 얻습니다. 그렇다면 NoTracking Merge Option을 사용할 수 없다고하셨습니까? 그것은 나에게 이상한 것처럼 보입니다. Alex –
NoTracking을 설정하면 개체의 관련 그래프를 계속 추적하지 않겠습니까? –