与使用QueryOver语法相比,我没有找到与NHibernate 3.0 LINQ Provider支持的内容的明确比较.从表面上看,似乎有两个很大的努力分为两个非常相似的东西.
使用每种产品有哪些关键的权衡取舍?
Die*_*hon 36
LINQ和QueryOver是完全不同的查询方法,它们被添加到NHibernate 2中存在的那些(Criteria,HQL,SQL)
QueryOver是Criteria的强类型版本,主要支持相同的NHibernate构造.
LINQ是一种"标准"查询方法,这意味着客户端代码可以在没有显式引用NHibernate的情况下使用IQueryable.它支持一组不同的结构; 很难说是否有更多或更少的QueryOver.
我的建议是学习所有支持的查询方法,因为每个用例都是不同的,有些用一个更好用,有些用其他用得更好.
Dan*_*ang 16
我已经使用了NH-Linq-providers(旧的NHContrib for Version 2.1,以及NH3.0的新版本),还使用了QueryOver.凭借在非常复杂的数据驱动应用程序开发过程中获得的所有经验,我强烈建议如果您计划仅仅支持基本的CRUD操作,则不要将现有的linq-provider与nHibernate一起使用!
当前的实现(linq)有时会产生非常难以理解且效率低下的SQL.如果您想优化数据库性能,特别是快速加入某些表会成为一场噩梦.
尽管存在所有这些缺点,但我从未遇到过错误的查询.因此,如果您不关心性能并且已经熟悉LINQ,那么请转到NH-Linq.否则,QueryOver是您可靠和类型安全的朋友.
| 归档时间: |
|
| 查看次数: |
7771 次 |
| 最近记录: |