ADO.NET MVC 및 Entity Framework를 사용하여 데이터베이스에서 관련 엔터티의 그래프를로드하고 있습니다. 엔티티 중 하나는 메모리에서 수정해야하지만 그래프의 다른 엔티티가 변경 될 때 변경 사항을 데이터베이스에 보존하지 않아야합니다.엔티티 프레임 워크에서 읽기 전용 엔티티를 어떻게 만듭니 까?
MergeOption.NoTracking 및 MergeOption.OverwriteChanges를 사용하려고 시도했지만이 둘 모두 무시되는 것처럼 보입니다. 변경되지 않아야하는 엔티티 집합의 변경 사항이 저장소에 유지됩니다. 나는 또한 쿼리 만 실행되기 전에 건설 된 후 MergeOption을 설정하려고했습니다
QuizDBEntities entities = new QuizDBEntities();
ObjectParameter[] searchParameters = { new ObjectParameter("contestantID", contestantID) };
entities.QuestionSet.MergeOption = MergeOption.NoTracking;
var query = entities.ContestantSet
.Include("Quiz.Questions.Categories.Options.Answer")
.Include("Answers")
.Include("Quiz.Questions.Filters.FilterAnswers")
.Where("it.ContestantID == @constestantID", searchParameters);
Contestant contestant = query.First();
:
나는 데이터베이스에서 개체 그래프를로드하는 데 사용하는 코드의 조각
은 아래와 같습니다.도움을 주시면 감사하겠습니다.
쿼리가 생성 된 후 MergeOption은 entities.QuestionSet.MergeOption 또는 "query"변수에서 어떻게 설정 되었습니까? –
이 게시물 이후 거의 2 년 후, 해결 방법을 찾았습니까? – tkerwood