ADO.NET 实体框架和 Linq to Entities

4 .net linq-to-entities entity-framework

我对 Linq to Entities 感到困惑。它是实体框架的新名称还是不同的东西?

Mar*_*ell 5

当用于查询实体框架时,LINQ to Entities 实际上只是标准的 LINQ 扩展方法(Where、OrderBy 等)。这不是唯一的选择;还可以在 SQL- Entity SQL的自定义方言中查询 EF 。实际上,LINQ 扩展方法用于生成实体 SQL,然后将该实体 SQL 传递给提供程序。

这样,实现新 EF 提供程序(因为它是可扩展的)的人只需要为查询担心一件事:实体 SQL。

当然,要严格算作 LINQ,您还需要使用语言部分,即

from product in db.Products
     where product.IsActive
     select product.Name;
Run Code Online (Sandbox Code Playgroud)

等等 - 但由于这无论如何归结为扩展方法(在Queryable/ 上IQueryable<T>),大多数人会将直接扩展使用视为 LINQ - 即

var qry = db.Products.Where(x=>x.IsActive).Select(x=>x.Name);
Run Code Online (Sandbox Code Playgroud)