Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq是否消除了对Hibernate的需求?_C#_Linq - Fatal编程技术网

C# Linq是否消除了对Hibernate的需求?

C# Linq是否消除了对Hibernate的需求?,c#,linq,C#,Linq,只是想知道是否有人会在迁移到C#3之后仍然使用Hibernate 这些是相互排斥的吗?我不太喜欢linq到sql(因为这就是你的意思),因为你必须设计一个数据库模式。使用hibernate(尽管我使用了一个类似的产品XPO),您只需创建对象,框架就可以处理这些关系(一对一、多对一、M对M) 这就是LINQtoSQL的最大缺点。所以,它们不是相互排斥的 需要注意的是,Linq不仅仅是一个工具。还有,举两个例子,但还有更多。Linq是C#和VB的一组语言扩展,在处理对象集合时为您提供语法支持 至于您

只是想知道是否有人会在迁移到C#3之后仍然使用Hibernate

这些是相互排斥的吗?

我不太喜欢linq到sql(因为这就是你的意思),因为你必须设计一个数据库模式。使用hibernate(尽管我使用了一个类似的产品XPO),您只需创建对象,框架就可以处理这些关系(一对一、多对一、M对M)


这就是LINQtoSQL的最大缺点。所以,它们不是相互排斥的

需要注意的是,Linq不仅仅是一个工具。还有,举两个例子,但还有更多。Linq是C#和VB的一组语言扩展,在处理对象集合时为您提供语法支持

至于您的主要问题,如果您有从表到域对象的一对一映射,那么Linq到SQL就可以了。NHibernate所处的位置是,您拥有一个现有的复杂域模型或现有的复杂数据库模式,并且希望在它们之间进行映射


此外,两者都可以与一起使用。

Linq更多地是关于建立一种统一的方式,在这种方式中可以查询DB、XML、对象或任何自定义数据存储。Hibernate仅用于查询DBs。
您可以使用Hibernate而不是LINQtoSQL,以防您更加熟练和舒适,因为Linq提供了与Hibernate几乎相同的查询DB的强大方法。因此,在某种程度上,当我们的讨论局限于DB时,Linq可以为您提供与Hibernate相同(或绝大多数!)的服务。

我认为如果NHibernate能够与Hibernate竞争,更多的人会使用它。尽管如此,在.net商店中通常不需要NHibernate

事实证明,只有的存在是不存在的

您的术语已关闭。LINQ只是处理数据的语法糖。Linq到Sql可能就是您所说的

IIRC Linq to Sql只支持MSSql(显然,他们故意扼杀了与其他db提供商的兼容性,我不知道为什么,一些人猜测是反竞争的,另一些人说截止日期已经到了,所以他们只是剔除了没有准备好的内容)。因此,NHibernate在这里不可能无关紧要。
实体框架(支持所有数据库的MS ORM工具)。当它最初出现在一些ORM社区中时,它不支持“持久性无知”以及社区期望从现代ORM中获得的一些特性、概念和前提。我相信他们正在努力改进它,但是为了接近NHibernate IMO,他们还有很多事情要做


所以,如果你想对你的ORM进行精细的控制,NHibernate仍然是非常重要的。它是最灵活但最复杂的ORM之一,因此仍然有它的位置。

我不明白。我没有使用hibernate,但我知道linqtosql会自动从数据库模式推断关系。您不必手动设置它们。使用Hibernate,您也不能跳过设计数据库的步骤。Hibernate和Linq只用于查询现有的数据库(可能是通过使用DB模式)…但它们不会为您创建模式。因此Linq只允许您从一个表中进行查询??事实上,Linq与集合没有任何特殊关系-它更为通用。请参见“否”,因为您可以使用join关键字将对象集合连接在一起。然后,Linq到Sql框架将生成Sql连接,该连接将被发送到服务器。有人能举例说明何时使用NHibernate和Linq吗?使用NHibernate和Linq的一个很好的例子是使用允许通过Linq进行查询的通用IRepository接口。因此,我们将在实现中使用NHibernate,但使用存储库的逻辑将使用Linq。