Phân biệt LINQ to SQL và LINQ to Entities


* Cấu trúc Class trong LINQ to SQL:

public class Customer {

public string CustomerID;

public string CompanyName;

public Order[] Orders;

}

* Cấu trúc Class trong LINQ to Entities: có kế thừa từ EntityObject

public class Customer : EntityObject {

public string CustomerID;

public string CompanyName;

public EntityCollection<Order> Orders;

}

– So sánh về cấu trúc bảng:

+ LINQ to SQL:là sự ánh xạ của các bảng trong csdl.

+ LINQ to Entities: cấu trúc giống như mô hình ý niệm dữ liệu, có quan hệ nhiều nhiều giữa 2 thực thể.

– Những lý do khi chọn LINQ to SQL:

-Đơn giản , dễ sử dụng, và phần truy xuất nhanh hơn LINQ to Entities vì LINQ to Entities kế thừa nhiều lớp làm cho truy xuất chậm. Trong LINQ là những lớp hoàn toàn riêng biệt nhau các thuộc tính có thể là giống nhau làm dư thừa một số thông tin do việc ánh xạ từ csdl nhưng đó là những lớp độc lập.

* Một số đặc điểm khác:

LINQ to SQL: khi thực thi sẽ chuyển thành SQL

LINQ to Entities: qua 1 bước trung gian là Entity SQL(đó là những mô hình ý niệm thực thể), rồi chuyển thành SQL

LINQ to SQL hỗ trợ T-SQL thông qua SqlMethods class, còn LINQ to Entities hỗ trợ thông qua EntityFunctions và SqlFunctions class

Bình luận về bài viết này