데이터베이스에 액세스하기 위해 Entity Framework 4.2 (코드 우선)를 사용하고 있습니다. 나는 만약 엔티티가 이미 추적되고 있지 않다면 SingleOrDefault
을 사용하여 엔티티에 질의를하면 데이타베이스를 조회 할 것이라는 가정하에 있었지만 이것이 사실 인 것처럼 보이지는 않습니다. 반면에 Find
메서드는이 작업을 수행하는 것으로 보입니다. Find
의 문제점은 관련된 데이터를로드 할 수 없다는 것입니다.Entity Framework 코드 첫 번째 찾기 대 SingleOrDefault (열렬한로드 중)
Find
메서드를 사용하는 방법이 있습니까? 그렇지만 열심히 데이터를로드 할 수 있습니까? 예를 들어, 나는 책과 리뷰의 모든로드하려는 : 내가 사용 책을 얻을 때 나는 리뷰를로드 할 수 있습니다 SingleOrDefault
으로
// Load book from the database
Book book = context.Books.Find(1);
context.Entry<Book>(book).Collection<Review>.Load(); // Book.Reviews is now populated
// Load book from the change tracker
// This will include all Reviews as well
Book book2 = context.Books.Find(1);
은 다음과 같습니다 :
// Load book + reviews from the database
Book book = Book.Include("Reviews").SingleOrDefault(b => b.Id == 1);
// Doing the same thing again requeries the database
Book book2 = Book.Include("Reviews").SingleOrDefault(b => b.Id == 1);
방법에 있는가 열심히로드가 SingleOrDefault
인 Find
의 동작을 얻으시겠습니까?
이 로컬 속성이 존재하지 않는다고합니다. 감사! – Dismissile
안녕하세요, 그리고 작업의 속도에 관한, 엔티티 정보를 얻기 위해 찾기 대 SingleOrDefault? – Patrick