簡體   English   中英

Linq to SQL用於新項目

[英]Linq to SQL for a new project

我將要開始一個新項目,並在決定要使用的數據訪問技術...由於各種原因,我真的很喜歡LINQ to SQL,但是我應該使用實體框架來開始新項目嗎?

我有這樣一種感覺,即實體框架更加腫並且不必要地復雜,因此可以解釋部分原因,這就是我考慮使用LINQ to SQL的原因...但是正如我所說,這可能只是我個人的感覺,因為這么多使用實體框架。

那么,人們會推薦我今天用來啟動一個新項目的哪個(請注意,此應用將在未來幾年內出現)?

干杯安東尼

編輯:我們是SQL Server商店,因此我們不需要獨立於數據庫供應商。

通過使用與我的域對象一起工作的存儲庫模式,抽象數據訪問atm的公認最佳方法也是嗎?

LINQ to SQL是關於快速開發和簡化的。 如果您的數據模型很復雜,或者可能變得如此復雜,那么使用更強大的框架會更好。

也就是說,比數據訪問工具更重要的是您如何從其余代碼中抽象出來。 做對了,您應該能夠從LINQ to SQL開始並在超出時(或在EF時)進行切換 2 4出來)。

請注意,EF 1尚未完成。 它缺少您在LINQ to SQL中找到的所有功能,其中更重要的功能之一是實際的外鍵屬性(您可以想象這些功能在EF 1中不存在嗎?)

另外,EF 4幾乎具有LINQ TO SQL的所有功能,並且兩者都將生成相對可比的(代碼方式)外部API,因此,除非您要對LINQ to SQL特定的API進行編碼,否則應該相對容易地遷移到EF4之后,“簡單地”將LINQ to SQL .dbml替換為EF4。

Linq to SQL在活動記錄/每個類范例一個表中效果最好。 如果您需要跨多個表跨類或支持復雜的繼承,那么它可能不是最佳選擇。 另外,Linq to SQL本機不支持多對多關系(有解決方法)。

如果這些聽起來都不會對您有影響,那么Linq 2 SQL可能是一個不錯的選擇。 這是一個很棒的輕量級數據訪問策略。

鑒於上述限制,Linq to SQL可以很好地用於實現存儲庫模式。 Google將提供幾個可行的Linq存儲庫示例。

您是否看過Subsonic-現在在版本3中,它基本上是linq to sql DAL,這使得在5分鍾之內就可以將整個數據庫的完整linq轉換為sql。 而它運行了T4模板,所以如果你想要添加到模板中它是很容易

http://www.subsonicproject.com/

我寫了一篇有關選擇.NET ORM的篇幅很長的博客文章:

.NET和ORM-決策,決策

基本上,NHibernate是您最好的選擇。 如果您堅持使用LinqToSql之類的簡單方法,請考慮使用SubSonic。 我不建議使用Microsoft選項之一:LinqToSql或EntityFramework。

根據您的需求決定是否使用存儲庫模式。

暫無
暫無

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

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