EF의 dbContext가 어떻게 작동하는지 혼란 스럽습니다.Entity Framework 컨텍스트와의 혼동
_context.Persons.Add(_person)
(person이 유효한 엔티티라고 가정)을 수행하는 경우, 내가 (_context.SaveChanges()를 호출하기 전에) Person을 쿼리하면 방금 추가 한 사람이 결과에 포함됩니까? 예를 들어
: 나는이 시도 할 때마다 컨텍스트가 나는 상황이 새로운 사람을 추가 한 사실의 트랙을 잃는 것처럼
Person _person = new Person() {Firstname = "Bill", Lastname = "Snerdly"};
_context.Persons.Add(_person);
var _personList = _context.Persons.Where(p => p.Lastname.StartsWith("Sne"));
것 같습니다.
내가 혼란스러운 점은 기존 사람을 편집하고 사람을 첨부하고 상태를 수정 된 것으로 설정하면 컨텍스트를 쿼리하면 변경 한 내용을 추적하여 결과에 반환하는 것입니다. 예를 들어이 경우
//Assuming that Person 5 exists with the name William Snerdly
Person _person = new Person() {Id = 5, Firstname = "Bill", Lastname = "Snerdly"};
_context.Persons.Attach(_person);
_context.Entry(_person).State = System.Data.EntityState.Modified;
var _personList = _context.Persons.Where(p => p.Lastname.StartsWith("Sne"));
, 대신 윌리엄의 이름을 빌과 함께 목록에 표시됩니다 (5)의 ID를 가진 사람처럼 보인다. IOW, 컨텍스트는 데이터를 쿼리했지만 변경 사항은 유지했지만 첫 번째 시나리오에서는 컨텍스트가 데이터를 쿼리했지만 추가 된 항목은 무시했습니다. 그냥 조금 어색해 보입니다.
이 내용을 올바르게 이해하고 있습니까, 아니면 누락 되었습니까?
감사합니다.
냉소, 답변 해 주셔서 감사합니다. 내 게시물을 편집하는 동안 당신은 대답했습니다. 컨텍스트가 편집을 존중하는 이유는 무엇입니까 (데이터베이스에 커밋되지는 않았지만)? – RHarris
지금 업데이트하십시오. 도움이되기를 바랍니다. – cynic
고마워. 그 말은 많은 의미를 지니고 있으며 실제로 내가하려고 한 일을 실제로 다룬다. EF4.1과 함께 거래하는 방법을 살펴볼 필요가 있습니다. – RHarris