我有一個項目,只能部署在運行.NET 3.0的服務器上。 我非常希望使用LINQ來簡化一些極其乏味乏味的邏輯。 有沒有簡單的方法來實現這一點?我會解決任何語法。有沒有辦法在.NET 3.0項目中使用LINQ查詢語法?
非常感謝
我有一個項目,只能部署在運行.NET 3.0的服務器上。 我非常希望使用LINQ來簡化一些極其乏味乏味的邏輯。 有沒有簡單的方法來實現這一點?我會解決任何語法。有沒有辦法在.NET 3.0項目中使用LINQ查詢語法?
非常感謝
由於.NET 2.0到3.5都運行在CLR 2.0上,所有的LINQ的東西都只是一堆庫。如果你在你的框架版本中包含缺少的DLL,它將工作得很好。
正如Patrick所說,關鍵的3.5個DLL是System.Core.dll(它提供了System.Linq)和System.Data.Linq.dll(用於Linq到SQL)。
如果你這樣做,我認爲你需要至少.NET 2.0SP1 System.dll我相信。
正如Marc所引用的,LINQBridge的工作原理是重新實現功能,但僅限於我相信的Linq-to-Objects。
另一種選擇是使用Mono項目中的這些相同的DLL(System.Core.dll和System.Data.Linq.dll)。他們重新實現了所有的LINQ。 Linq-to-Sql的東西可能有點不成熟,但它具有與其他數據庫一起工作的優點,而不僅僅是MSSQL。
http://mono-project.com/Main_Page
這消除了與您的應用程序分發微軟的DLL的合法性的任何問題。
的同事,使用LINQBridge並取得了成功。
從http://codebeat.wordpress.com/2008/06/23/using-linq-in-net-30/摘自:
我試過了,它工作,但要小心Mike Atlas對部署這兩個文件的法律後果的警告。
有趣,不錯的發現。 – Marc 2010-07-27 22:11:16
實際上,這引發了重新分配微軟圖書館的法律問題。小心這樣做。 – 2010-07-27 22:47:36
這一個實際上不適合我。將目標框架從3.5更改爲3.0後,Visual Studio將刪除System.Core和System.Data.Linq dlls – 2010-07-28 13:56:01
當我說Mono已經實現了所有的LINQ時,我的意思是它支持Linq-to-Objects,Linq-to-XML和Linq-to-Sql(通過DBLinq項目)。最新版本的Mono(截至2010年7月)是2.6.7,這是我得到程序集的地方。 – Justin 2010-07-27 22:31:56
這是迄今爲止問題中的最佳答案! – 2010-07-27 22:48:16
哦,我應該補充說,如果你想做Linq-to-XML,你還需要System.Xml.Linq.dll。帕特里克用他的絕地權力欺騙了我。 – Justin 2010-07-28 05:45:03