2009-01-14 22 views
3

Linq-to-Sql缺少哪些主要功能?Linq-to-Sql中沒有任何主要功能嗎?

  • 與其他主要SQL數據庫引擎(MySQL的等)
  • 映射許多一對多的關係
  • 任何其他兼容?

我已經開發了一個Linq-to-Sql的重大項目,它的DAL Heart。我以前沒有開發過使用關係數據映射器,所以它是來自數據集的學習曲線。但是我沒有發現Linq-to-Sql無法解決的任何主要問題。 我的測試得出結論,它比Linq-to-Entities快得多。

那麼Linq-to-Sql缺少哪些主要功能?

我想我想問的是,如果在Linq-to-Sql上的開發已經停止 - 它會起作用嗎?

+0

Duplicate:http://stackoverflow.com/questions/253263/has-microsoft-really-killed-linq-to-sql和http://stackoverflow.com/questions/252683/is-linq-to-sql -doa和http://stackoverflow.com/questions/352487/is-linq2sql-dead – 2009-01-14 02:15:35

+3

我不認爲這是同一個問題。我問... Linq-to-Sql中缺少主要功能嗎? – 2009-01-14 02:55:41

+0

因此,請在結束之前嘗試閱讀我的問題! – 2009-01-14 02:56:14

回答

0

除非微軟可以使實體框架比linq to sql更好的速度和簡單性,恕我直言,這並不重要。

3

Maybe the biggest thing missing is a future

我傾向於這個職位,我掛同意,MS說,會有LINQ的不斷髮展,以SQL,但他們的行動(或者更具體的非動作)告訴一個不同的故事。 MS肯定希望你把Linq兌換成實體。

1

我一直在開發一個最近使用它的系統。我設計數據庫的同事也爲它做了一些L2S編碼。他(不斷地)發出的兩件事是:

1 /根據某些條件沒有烘烤的方式進行批量刪除。 L2S最終將單獨刪除非常低效的行。有很多博客討論這方面的各種解決方法。

2 /更新需要查詢對象,更新它然後提交更改的繁瑣機制,即不需要初始查詢。如果你知道一行的關鍵字,你應該能夠直接更新它,而無需事先查詢。

3
  • 用於預先加載的良好支持
  • 高級映射(即不類和表之間的1對1映射)
  • 刷新映射與數據庫的變化
1

我的能力數月來,我一直在使用linq進行sql。我發現的唯一不足之處是,在計算編程結果之前,將謂詞添加到存儲過程和編程生成結果的混合中將嘗試將查詢降至SQL。這很容易通過先調用.ToList()來修復。

每隔一段時間我希望Linq to Entity功能,但linq to sql完成我想要的95%。

2

首先,它並沒有死亡。儘管它沒有在4.0中獲得任何新功能,但他們已經修復了一些bug和怪癖,我相信他們會繼續這樣做。

退房的LINQ到SQL更改列表.NET 4.0:
http://damieng.com/blog/2009/06/01/linq-to-sql-changes-in-net-40

IMO這可能是因爲他們沒有碰到太多的核心是好事 - 它是固體,高效並在大多數情況下生成非常好的SQL,因此任何重大手術都有可能破壞一些好的東西。設計人員和運行人員中少數缺失的部分可以用螺栓固定或解決。

此外,最初在MSFT編寫L2S的人Matt Warren寫了一個他在博客和codeplex.com上發佈爲開源(MS-PL)的「版本2」。他把這個IQToolkit,但我想將它稱爲L2Sv2 ... :)

瞧瞧吧:
http://blogs.msdn.com/mattwar/
http://www.codeplex.com/IQToolkit/

1

我不認爲它已經死了。我認爲這將會起作用,目前的問題可能會消失。但我認爲它不會超過現在的水平。有關係嗎?我個人認爲它沒有。我認爲框架是好的。我在L2S中發現的兩個主要問題是無法輕鬆分離實體以及令人尷尬的更新機制。

2

Linq to SQL對多層體系結構沒有簡單的支持。

實體框架的設計從一開始就支持分佈式場景。在.Net 3.5 EF中並不完全(至少以自動方式),它爲進一步改進打下了基礎。因此,在.Net 4.0中,EF將T4模板添加到代碼生成自追蹤實體和DTO中。