Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
Linq 林克,它的效果如何?_Linq_Nhibernate_Linq To Nhibernate - Fatal编程技术网

Linq 林克,它的效果如何?

Linq 林克,它的效果如何?,linq,nhibernate,linq-to-nhibernate,Linq,Nhibernate,Linq To Nhibernate,我们正在启动一个使用NHibernate的新项目,并考虑使用NHibernate.Linq(3.0中的嵌入式版本,而不是contrib项目)。我知道这是一个相对较新的补充。有人经常使用NHibernate当前的LINQ吗?对于现实世界的应用程序来说,它是否足够成熟 具体来说,您是否遇到了困难的bug,性能如何,以及在支持方面是否存在导致您出现问题的重大差距 谢谢 我在当前项目中广泛使用了NHibernate LINQ,对此我有一些复杂的感觉: 在NH2.1的NH Contrib项目中使用了以前的

我们正在启动一个使用NHibernate的新项目,并考虑使用NHibernate.Linq(3.0中的嵌入式版本,而不是contrib项目)。我知道这是一个相对较新的补充。有人经常使用NHibernate当前的LINQ吗?对于现实世界的应用程序来说,它是否足够成熟

具体来说,您是否遇到了困难的bug,性能如何,以及在支持方面是否存在导致您出现问题的重大差距


谢谢

我在当前项目中广泛使用了NHibernate LINQ,对此我有一些复杂的感觉:

在NH2.1的NH Contrib项目中使用了以前的LINQ之后,我可以告诉您,这个新版本更加成熟,并且适用于大多数真实场景。但是,一旦开始执行更复杂的查询,和/或需要特别注意性能,就会出现一些障碍。它仍然有一些bug,你会经常看到臭名昭著的“未实现的方法”。无论如何,它是ORM不可知论的,并且允许一些很好的关注点分离,您将利用现有的LINQ知识。它工作得很好

因此,我的建议是:IMHO,它已经为现实世界的应用做好了准备,但不要期望它是解决所有问题的灵丹妙药,并准备在某些(或许多)地方使用QueryOver/Criteria/HQL

根据我的经验,只是一些不太好用的功能的旁注:

  • “任何”方法
  • “获取”方法
  • 二级缓存
  • 未来
  • 空间扩展

NHibernate Linq是一种极具潜力的功能。不幸的是,我已经遇到过几种情况,Linq中的查询不起作用,我不得不使用QueryOver(另一个非常好的补充)

对于现实世界的应用程序,它是否足够成熟?是的,如果您不局限于只使用Linq而不使用其他任何东西(HQL、ICriteria、QueryOver,甚至纯SQL)

下面是一个很好的简短示例列表

问题的形式略有不同:

我将其与WCF RIA服务结合使用,其中方法的返回类型是可查询的