2010-03-02 40 views
2

問題:直到現在,我並不知道LINQ是一個ORM工具。我總是把它看作是一種新的SQL查詢語言。所以我最近開始使用nHibernate。

所以我的問題:
與nHibernate相比,LINQ的優點和缺點是什麼?

據我發現,不同之處在於LINQ需要.NET> 2.0(除非你破解它,這是不安全和非法的),而nHibernate與> = 2.0一起工作。
而對於LINQ,如果您不使用MS-SQL,您需要擁有供應商/第三方LINQ提供者dll。
我不知道哪個更快更容易,以及是否有nHibernate支持的所有數據庫的LINQ提供程序,以及LINQ如何與mono一起工作。LINQ與nHibernate

+0

只是爲了澄清,LINQ是淨3框架的一部分。 – 2010-03-02 11:12:32

+7

好的,你忙於查詢語言「Linq」和ORM的「Linq to SQL」。您可以使用LINQ查詢NHibernate的,如果你選擇... – Murph 2010-03-02 11:21:51

+0

我想我會留下來與NHibernate。 – 2010-03-02 11:30:44

回答

6

Linq不是一個ORM工具。 Linq2Sql和Entity框架是使用Linq的Microsoft ORM工具。我發現this article比較NHibernate的實體框架4.0相當啓發。

總結:NHibernate早已建立和測試過,流利使用起來是一種樂趣。不幸的是,NHibernate在文檔部門中受到了影響,但它是操作系統,因此您可以深入瞭解代碼。 EF 1.0是可怕的,但4.0更好。這是一款MS產品,因此得到了大力宣傳,得到了支持,網絡上有很多例子。 4.0現在還在測試階段。

+1

不管怎樣,永遠不要讀nHibernate文檔。 – 2010-03-02 11:31:51

3

LINQ不是一個ORM。 LINQ僅僅是一個查詢技術/庫,在C#和LINQ中有特殊的語法,NHibernate是互補的技術。甚至有L INQ2NHiernate

LINQ2SQL是一個ORM。 就速度而言,除非您正在製作證券交易軟件或類似的東西,否則我不會太擔心,因爲毫秒是非常重要的。我相信即使StackOverflow在LINQ2SQL上運行,或者在某些時候,但我可能是錯的。

+0

OK,所以使用LINQ我的意思是LINQ2SQL ;-)) 我看別的地方,他們是從LINQ切換到NHibernate的性能方面的原因。所以我不確定這不重要。 – 2010-03-02 11:27:53

+0

Linq也適用於vb.net! – ScottE 2010-03-02 11:56:09

1

NHibernate有2個linq提供程序。它們支持所有的數據庫NHibernate的支持

1

記住LinqToSql真的LinqToMsSqlServer - 你,如果你走這條路線鎖定在...