2009-02-17 35 views

Trả lời

3

Vâng, tôi tin là vậy. Nó cũng có một tính năng "tải với"/ngữ nghĩa cho phép bạn tải hàng loạt một số thứ trong một cách tiếp cận shotgun. Điều này rất hữu ích khi bạn biết bạn sẽ cần dữ liệu liên quan cùng với thực thể chính ngay trên con dơi, như để lưu trước bộ nhớ cache tất cả dữ liệu bạn cần để hiển thị một Trang Web đơn, v.v.

3

Có, tải chậm được bật theo mặc định. Hãy xem this article.

12

Nó phụ thuộc vào cách bạn xác định "tải chậm".

Nếu bạn nói

var person = (from p in db.People 
       where p.PersonId = pid 
       select p).First(); 
var spouse = person.Spouse; // based on the SpouseId FK 
           // back into the People table. 

Sau đó, đó sẽ là một cách chính xác "lazying tải" là đối tượng thứ hai là không kéo từ cơ sở dữ liệu cho đến khi nó được tham chiếu. Tuy nhiên, điều này sẽ yêu cầu hai truy vấn cơ sở dữ liệu.

Tuy nhiên, nếu bạn đã nói,

var family = (from p in db.People 
       where p.PersonId = pid 
      select new 
       { 
       Name = p.Name, 
       SpouseName = p.Spouse.Name 
       }).First(); 

Sau đó LINQ sẽ tự động thực hiện tham gia và tải các thông tin từ cả các bản ghi trong một truy vấn cơ sở dữ liệu duy nhất.

Các vấn đề liên quan