LINQ to Entities - это на самом деле просто стандартные методы расширения LINQ (Where, OrderBy и т. Д.), Используемые для запроса Entity Framework. Это не единственный вариант; EF также может быть запрошен на пользовательском диалекте SQL - Entity SQL . В действительности методы расширения LINQ используются для генерации Entity SQL, а затем этот Entity SQL передается поставщику.
Таким образом, люди, внедряющие нового поставщика EF (поскольку он расширяемый), должны беспокоиться только об одном: запрос Entity SQL.
Конечно, чтобы строго считаться LINQ, вам также потребуется использовать часть language , т.е.
from product in db.Products
where product.IsActive
select product.Name;
и т. Д. - но поскольку это все равно сводится к методам расширения (на Queryable
/ IQueryable<T>
), большинство людей считают прямое использование расширения как LINQ - т.е.
var qry = db.Products.Where(x=>x.IsActive).Select(x=>x.Name);