アプリケーションのデータアクセスレイヤーとしてADO.NETEntityFrameworkを使用していますが、ビジネスロジックをどこに配置すべきかわかりません。ビジネスロジックをEntityFrameworkエンティティと統合する方法を示す利用可能なベストプラクティスまたはサンプルはありますか?
編集後:
BLLに計算、セキュリティ、ルールなどを実装したサンプルが必要です...記事とサンプル..!
アプリケーションのデータアクセスレイヤーとしてADO.NETEntityFrameworkを使用していますが、ビジネスロジックをどこに配置すべきかわかりません。ビジネスロジックをEntityFrameworkエンティティと統合する方法を示す利用可能なベストプラクティスまたはサンプルはありますか?
編集後:
BLLに計算、セキュリティ、ルールなどを実装したサンプルが必要です...記事とサンプル..!
ビジネスレイヤー(データアクセスレイヤーを参照する別のプロジェクト、または少なくともビジネスオブジェクトが存在するある種のディレクトリ)が必要です。これらのビジネスオブジェクトは、DALと直接通信するものである必要があります。つまり、DALにはビジネスロジックが属していないため、DALにビジネスロジックを実装しないでください。
この図は以前に見たことがあると思います。
私はあなたのビジネスロジック/ルールをEntityFrameworkに入れません-それはデータアクセス層として機能します。別のビジネスロジックプロジェクト(クラスライブラリ)を作成します。これにより、データアクセス層を呼び出してデータを取得/設定し、途中でビジネスルールを適用できます。これにより、データアクセス層が変更された場合にルールを再利用できます。
エンティティをビジネスオブジェクトとして使用できます。ビジネスロジックのmsdnライブラリの記事を実装して、その方法を説明します。リンクをたどると、プロパティの変更時および変更の保存時にビジネスロジックに適合するコードサンプルが見つかります。
カスタムビジネスロジックを使用して、部分クラスを使用してEFを拡張できることを忘れないでください。:
「ADO.NETEntityFrameworkには、EDMスキーマを指定すると、.NET環境内のEDMエンティティを表す.NETクラスを生成するツールが含まれています。生成されたクラスは部分的なクラスであるため、カスタムビジネスロジックで拡張できます。コードジェネレーターに干渉することなく、別々のファイルに保存します。」
オブジェクトのカスタマイズmsdnの記事でも、このトピックについて説明しています。
リッチインターネットアプリケーション(RIA)のn層ソリューションでは、ドメインサービスにビジネスロジックを追加できます