Bạn có thể tải háo hức:
var q = from p in Context.Products
.Include("ModifiedByUser")
.Include("Category")
select p;
... hoặc dự án:
var q = from p in Context.Products
select new
{
Id = p.Id,
Name = p.Name
ModifiedByUserName = p.ModifiedByUser.Name,
CategoryName = p.Category.Name
}
Ưu điểm của dự báo là bạn chỉ nhận được dữ liệu bạn cần, không phải là toàn bộ của tất cả các thực thể tham chiếu. Lợi thế của tải háo hức là các thực thể trả lại thực hiện theo dõi thay đổi. Chọn kỹ thuật phù hợp cho vấn đề trong tầm tay.
Cập nhật
Vâng, nó là quan trọng để đề cập rằng bạn đang sử dụng RIA Services. Tôi đoán bạn cũng đang làm việc trong khách hàng. Điều này làm cho mọi thứ hoàn toàn khác nhau.
Trong các Dịch vụ RIA, điều quan trọng là phải đảm bảo rằng bạn trả về toàn bộ biểu đồ của các thực thể bạn yêu cầu trong lần tải đầu tiên. Bạn không muốn gọi bất cứ thứ gì như .Load() trên một thực thể, bởi vì đó sẽ là một cái nóng khác đối với máy chủ, điều đó không tốt cho hiệu suất. Nếu bạn đang ở trong, ví dụ, một khách hàng Silverlight và yêu cầu một danh sách các cá thể từ máy chủ và các thuộc tính liên quan của chúng chưa được thực hiện, nó đã quá muộn. Ngoài ra, Bao gồm sẽ không hoạt động trong một khách hàng Silverlight. Do đó, RIA Services có các công cụ phía máy chủ mà bạn có thể sử dụng để đảm bảo rằng bạn trả về đồ thị đối tượng chính xác, đầy đủ vật chất ban đầu.
Những gì bạn cần làm thay vào đó được sử dụng IncludeAttribute bên trong máy chủ Dịch vụ RIA của bạn. Bạn có thể tạo lớp siêu dữ liệu "bạn thân" để trang trí mô hình tổ chức của mình với [Bao gồm]. Có các ví dụ trong the RIA Services overview document, section 4.8.
Nguồn
2009-09-03 17:50:20
Dưới đây là ví dụ về cách Im tải dữ liệu: Có lẽ tôi nên đề cập rằng tôi đang mã hóa ứng dụng này cho ứng dụng Silverlight. Và điều này là thông qua một dịch vụ miền. RTIPricingContext _context = new RTIPricingContext(); LoadOperation op = _context.Load (context.GetPurchaseOrderQuery(), PurchaseOrdersLoadedCallback, null); khoảng trống riêng PurchaseOrdersLoadedCallback (LoadOperation lo) { IEnumerable po = lo.Entities.Where (w => w.UserID == SelectedUser.ID); // Đây là bộ sưu tập mà tôi cần đưa vào các lớp con. –
Jukeman