簡體   English   中英

LINQ 還是別的什么?

[英]LINQ or something else?

我最近離開了一家小公司,我們正在編寫 .NET MVC 應用程序,使用 LINQ2SQL 進行數據訪問以獲取新的 position。 在這里,他們仍在使用 web forms 和內部編寫的 ORM,但希望在不久的將來遷移到 MVC 和可能的 LINQ2SQL。 我個人喜歡 LINQ2SQL 的所有內容,除了在更改表(添加列或其他內容)時遇到的問題以及每次都必須重新生成 dbml 文件。

1) 該問題是否已經解決,或者是否有人知道 Microsoft 是否計划解決該問題?

2) 如果我們要在這里使用 LINQ2SQL 以外的東西作為我們的新數據訪問層,大家的建議是什么?

當前的 MS 推動的是實體框架。 為什么? 因為,坦率地說,LINQ 到 SQL 是由於 EF 延遲而造成的。 我喜歡 LINQ 作為“迭代”的一種方式(不太正確,因為它適用於 rX 而不是枚舉,但這可能在技術上有點過於具體了)。

如果你想去 MS 的方向,我會瞄准 EF。 我個人在當前迭代中發現了一些問題,但它正在變得更好。 你的旅費可能會改變。

如果這不是數據訪問的方式,我會考慮使用非自定義 OR Mapper。 那里有很多它們,其中許多具有悠久的歷史並且足夠穩定,可以推薦給企業使用(例如 nHibernate)。 除非絕對必要,否則維護自定義 OR Mapper 的工作量超出了團隊應承擔的工作量。

這可能會變得主觀,但如果 (1) 是一個問題並且您可以選擇第三方產品,Developer Express Express Persistent Objects 有一個有趣的解決方案。 當 model 更改時,這允許在可能的情況下對數據庫進行透明更新。 它已經存在了很長時間並且很穩定。

Entity Framework 現在被 Microsoft 推廣為他們的 ORM,舊的 LINQ 到 SQL 技術正在迅速被棄用。 EF正在大力發展,無疑會有所改善。

您肯定想遠離內部 ORM。

  1. 好吧,最新版本的實體框架支持“代碼優先”,其中數據庫是從您的業務對象自動創建的。 但是 model 仍然需要在 model 更改的任何時候重新生成。 所以我不確定你在這里尋找什么。

  2. 實體框架。

實體框架允許您從數據庫進行更新。 您需要做的就是右鍵單擊 edmx 文件和 select 'Update Model from Database'。 它是 Linq2SQL 的快速替代品,您可以以相同的方式訪問它。 兩者之間只有一些小的變化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM