2011-10-10 52 views
1

使用linq to sql作爲我的數據層來檢索數據,然後將數據填充到業務層中是不是一個好主意?ASP.Net - 使用LINQ to sql作爲我的數據層?

我會面臨性能問題嗎?

什麼是從數據庫獲取數據並將其填充到業務對象中的最有效方式?

回答

3

Linq to Sql將爲您提供足夠好的性能,適用於除最苛刻的應用外的所有應用。如果你只是在考慮使用SQL Server數據庫,Linq to SQL是一個非常有效的ORM,並且它「可以工作」。

我曾經在我在SQL Server上開發的所有.NET應用程序中使用Linq to SQL。然後我發現了Entity Framework(4.1)和Code First方法的簡潔和優雅。這種方法適用於域驅動設計,同時允許您編寫業務對象,而無需編寫任何持久性代碼,方法是採用基於約定的方法。值得思考。

2

如果你不做任何愚蠢的事情,LINQ2SQL不會給你帶來很大的性能問題。使用LINQ2SQL有一個小的開銷,但是這個很小。

最有效的方法是直接在選擇部分選擇業務對象。

var myResult = from product in context.Products 
       where product.StockQty > 10 
       select new MyBusinessProduct 
       { 
        Name = product.Name, 
        Category = product.Category, 
        etc = product.etc, //... 
       } 

通常你可以使用LINQ的對象爲你的業務對象,可以在部分類與商業方法進行裝飾,同時也可對LINQ類的部分方法來實現驗證規則。