首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq的Fluent NHibernate还是NHibernate?

Linq的Fluent NHibernate还是NHibernate?
EN

Stack Overflow用户
提问于 2010-08-02 15:01:32
回答 4查看 2.3K关注 0票数 3

流畅的NHibernate或NHibernate,我们应该选择哪一个来支持linq?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-02 15:41:02

Fluent NHibernate来自配置,Linq用于查询。它们做不同的事情,你可以同时使用它们。Fluent并不是NHibernate或Linq的替代品,而仅仅是一个帮助您在代码中配置NHibernate而不是使用NHibernate文件的帮助库。

票数 22
EN

Stack Overflow用户

发布于 2010-08-02 20:14:04

当您使用NHibernate时,您将为您的对象和查询(LINQ)创建映射以CRUD这些对象。NHibernate使用XML映射文件。Fluent NHibernate只是根据约定或任何其他可能的方式为您生成这些映射文件。所以,您是否使用FNHib并不重要。您仍然可以使用Linq、Hql、Criteria或QueryOver查询您的对象,并且仍然使用NHibernate。

票数 4
EN

Stack Overflow用户

发布于 2011-05-27 14:50:43

NHibernate - XML中的写入配置

Fluent NHibernate -使用类型安全在C#VB.NET中写入配置

如果您希望类型安全,并且不喜欢用NHibernate编写配置,那么您应该选择Fluent。因此,任何更改都可以很容易地重命名和重构。您只需键入dot,intellisense将在文档方面为您提供很多帮助。写第一个config需要时间,但是一旦你知道了,它就很容易了。

Fluent NHibernate中的Linq与NHibernate本身是一样的。因为像其他答案一样,流利的NHibernate只是为了配置和简化NHibernate的使用,其余的都来自NHibernate。例如:

代码语言:javascript
复制
        var maleCustomers = (from t in Session.Query<Entities.Customer>()
                   where t.Gender == Gender.Male
                   select t).ToList();

我使用的是Fluent NHibernate,但是当您右键单击.Query<>“转到定义”时,您会发现它来自namespace NHibernate.Linq。因此,无论哪种方式,实际上都是使用相同的Linq。

就像你说的Linq for NHibernate和内置的Linq for Sql是不同的。我不太确定有什么不同。我认为这是相同的,但当我试图以更复杂的方式查询时,它将抛出异常或只是一个空的Sql查询。

结论:无论你选择哪种方式,Linq都是一样的,那就是NHibernate Linq

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3385651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档