안녕하세요 저는 엔티티 프레임 워크 5를 사용하고 있습니다. 요청, 지역, 태그의 세 가지 모델이 있습니다. Request and Regions
과 Request and Tags
사이에 많은 관계가 있습니다. 나는 this을 따라 양식과 같은 마법사를 만들었습니다. 그래서 나는 3 개의 뷰 모델을 가지고있다. 하나의보기 양식은 기본 정보를 얻고 다른 두 양식은 요청과 관련된 태그 (다중 선택) 및 지역 (다중 선택)을 형성합니다. 내가 만들고 각각의 작업오류 방지 : IEntityChangeTracker의 여러 인스턴스에서 엔티티 개체를 참조 할 수 없습니다.
private Request GetRequest()
{
if (Session["request"] == null)
{
Debug.WriteLine("New Session Creation");
Session["request"] = new Request();
}
Debug.WriteLine("SameSession");
return (Request)Session["request"];
}
내 컨트롤러 I에 Entities cxt = new Entities();
의 단일 인스턴스가 어떤 특정 요청 모델 인스턴스를 전달하기 위해이 기능을 사용하여 각각의 행동에 같은 요청 세션을 통과하기 위해
선택한 영역 및 태그의 ID를 양식에서 가져 와서 요청 개체 인스턴스에 추가하기 위해 db를 쿼리하십시오.
RegionActionResult
long val;
foreach (var item in data.Regions)
{
val = Convert.ToInt64(item);
request.Regions.Add(cxt.Regions.Single(r => r.Id == val));
}
TagActionResult
long val;
foreach (var item in data.Tags)
{
val = Convert.ToInt64(item);
request.Tags.Add(cxt.Tags.Single(r => r.Id == val));
}`enter code here`
그때 나는 마지막 actio를 호출 FinalActionResult
Request_Log request = GetRequest();
cxt.Request.Add(request);
cxt.SaveChanges();
그래서
처럼 여기에 요청을 저장 n 요청을 저장하면 오류가 발생합니다 An entity object cannot be referenced by multiple instances of IEntityChangeTracker.
엔티티 프레임 워크에 새로운 것이므로 문제가 무엇인지 알 수 없습니다. 나는 문맥 변수 cxt
의 단 하나의 인스턴스를 가지고 있는데,이 인스턴스는 요청 객체에 영역과 태그를 추가 한 다음이 동일한 컨텍스트로 저장하여 내가 어떻게 그 하나의 컨텍스트가 더 많은지에 관해서 잃어버린 것입니다. 제 질문이 의미가 있기를 바랍니다.
우수 설명. 정말 도움이된다. – flexxxit