我应该在2016年使用哪个ORM用于与SQL服务器通信?

ngn*_*ewb 13 .net linq asp.net orm entity-framework

我的大部分服务器端体验都是使用nodeJS meteor或rails,所以我还没有丰富的.Net知识.在rails中它很容易选择ORM,因为ActiveRecord是城里唯一的游戏或者看起来如此.我的方法通常是使用ORM查询所有内容,如果你不能将它拉下来,那么请下拉到原始SQL.

但是,我正在尝试阅读有关在.Net 4.5或更新的应用程序中查询我的数据库的教程和课程,我对未来的方式感到困惑.我在下面看到教程

  • Linq Lambda语法
  • Linq查询语法
  • 实体框架

现代.net应用程序的建议ORM是什么?看起来我可以在上述所有方面做基本的CRUD操作.但是,一个人更适合说跨表加入吗?请注意,我只计划针对我的.net解决方案查询Microsoft SQL服务器数据库.

让我感到困惑的是阅读EF取代了linq然后阅读EF也使用了linq.因此,当我看到一个例子说选择所有列我不知道我是否使用过去或未来的语法.也只是看代码我不知道它的linq或EF.我可以告诉它的查询或lambda语法.

Vah*_*eri 9

您提到的选项并非都是ORM,在这3中唯一的ORM是EF..net中还有其他流行的ORM,包括:

  • NHibernate的
  • LLBLGen亲
  • ActiveRecord的

他们中的大多数都支持LINQ.EntityFramework是较年轻的,但是它与VS的集成并且开箱即用可以使它成为.net中最受欢迎的ORM,它将LINQ替换为实体而不是LINQ本身.msdn中定义的LINQ(语言集成查询)可以与不同的数据源一起使用.

LINQ是一组功能,它将强大的查询功能扩展到C#的语言语法.LINQ引入了用于查询和更新数据的标准,易于学习的模式,并且可以扩展该技术以支持任何类型的数据存储..NET Framework包含LINQ提供程序程序集,可以使用LINQ与.NET Framework集合,SQL Server数据库,ADO.NET数据集和XML文档.

有两种不同的语法可以使用LINQ,主要称为Fluent语法和Query语法.

如果你刚才提到.net,我建议使用EF语言流利,这将是开始在.net中查询数据库的最快方法.


Cli*_*t B 5

简短的答案是实体框架。

我认为让您感到困惑的是,您可以在实体框架中使用Linq Lambda和Linq Query语法。但是未来(在我看来)是Fluent API。

我一直在使用Entity Framework 7(预发行版),并且给人的印象是它专注于Fluent API。这对我来说很好,因为我喜欢它比Linq语法好得多。

  • 为什么不使用NHibernate? (3认同)