流畅的NHibernate或NHibernate,我们应该选择哪一个来支持linq?
发布于 2010-08-02 15:41:02
Fluent NHibernate来自配置,Linq用于查询。它们做不同的事情,你可以同时使用它们。Fluent并不是NHibernate或Linq的替代品,而仅仅是一个帮助您在代码中配置NHibernate而不是使用NHibernate文件的帮助库。
发布于 2010-08-02 20:14:04
当您使用NHibernate时,您将为您的对象和查询(LINQ)创建映射以CRUD这些对象。NHibernate使用XML映射文件。Fluent NHibernate只是根据约定或任何其他可能的方式为您生成这些映射文件。所以,您是否使用FNHib并不重要。您仍然可以使用Linq、Hql、Criteria或QueryOver查询您的对象,并且仍然使用NHibernate。
发布于 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。例如:
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。
https://stackoverflow.com/questions/3385651
复制相似问题