2011-10-10 11 views
1

linqをデータレイヤーとして使用してデータを取得し、そのデータをビジネスレイヤーに取り込むのは悪い考えですか?ASP.Net - 私のデータ層としてSQLにlinqを使用して?

私はパフォーマンスの問題に直面しますか?

データベースからデータを取得し、それをビジネスオブジェクトに取り込む最も効率的な方法は何ですか?

答えて

3

Linq to Sqlは、最も要求の厳しいアプリケーション以外のすべてに対して、十分なパフォーマンスを提供します。 SQL Serverデータベースの使用を検討しているのであれば、Linq to SQLは非常に生産性の高いORMであり、「うまくいく」だけです。

私はSQL Serverで開発したすべての.NETアプリケーションでLinq to SQLを使用しました。次に、Entity Framework(4.1)とコードファーストアプローチのシンプルさとエレガンスを発見しました。このアプローチは、ドメイン駆動型設計でうまく機能しますが、慣習に基づいたアプローチを使用して永続性コードをまったく記述することなくビジネスオブジェクトを記述することができます。考えてみる価値がある。

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-オブジェクトを使用することができます。

関連する問題