NHibernate LINQ 是不是稳定并且项目上的所有 NHibernate 螺栓都允许它
Posted
技术标签:
【中文标题】NHibernate LINQ 是不是稳定并且项目上的所有 NHibernate 螺栓都允许它【英文标题】:Is NHibernate LINQ stable and do all NHibernate bolt on projects allow itNHibernate LINQ 是否稳定并且项目上的所有 NHibernate 螺栓都允许它 【发布时间】:2011-01-08 19:43:28 【问题描述】:由于 Subsonic 的易用性和 LINQ 集成,我一直是 Subsonic 的长期用户。
我现在必须使用其他东西,因为我需要能够使用 Oracle。
我有 2 个具有相同架构的数据库,因此我想要一组 POCO,然后根据要求更改连接字符串以在 SQL 和 Oracle 之间切换。
这是否可能,首先,LINQ 在 NHibernate 中是否功能齐全且稳定,Castle ActiveRecord 和 Fluent Hibernate 是否允许 LINQ 查询?
【问题讨论】:
很简单,它正在运行,你可以在 NHiebrnate 项目(尤其是 Linq 部分)的源代码中看到测试场景,但我说的是关于 NHibernate 不流畅的 NHibernate。 【参考方案1】:-
很稳定。
它没有完全运行,并且没有计划完全运行。我认为不存在支持 100% 一切的 linq 提供程序。问题应该是:“它是否完全适用于您需要执行的查询?” (在 99% 的情况下,该问题的答案是肯定的)
您可以在 Jira 中找到报告的错误/缺失功能
Fluent NHhibernate 不进行任何查询,只进行映射。城堡活动记录也不查询。 linq 命名空间没有对活动记录或流利的引用,反之亦然。
【讨论】:
只是一个小问题:Castle ActiveRecord确实在 NHibernate Criteria、HQL 和 LINQ 之上有一个小层。【参考方案2】:我不会将 NHibernate LINQ 实现归类为稳定的。 LINQ 提供程序还很年轻,所以在我看来,遇到不受支持的查询场景的机会仍然很大。但是,其他 NHibernate 查询选项可以解决 LINQ 提供程序可能引发的任何问题。
【讨论】:
以上是关于NHibernate LINQ 是不是稳定并且项目上的所有 NHibernate 螺栓都允许它的主要内容,如果未能解决你的问题,请参考以下文章
对于不支持子查询的 NHibernate-to-LINQ 是不是有任何解决方法?
用 LINQ to SQL 或 LINQ to EF 替换 NHibernate