0

これに対する明確な答えをまだ見つけていません。明確にするために:

nHibernate と SQL サーバーでは、ストアド プロシージャ、ビュー、およびトリガーに格納されているビジネス ロジックを無視したり、HQL またはアプリケーション コードに移行したりする必要がありますか?

4

2 に答える 2

1

NHibernate は、「ドメイン駆動型」の方法論を使用して構築されたアプリケーションに非常に適した O/R マッパーです。
このようなアプリケーションでは、ドメイン モデルはビジネスの表現力豊かなオブジェクト指向モデルです。これは、「モデル」にすべて (または大部分) のビジネス ロジックが含まれていることを意味します。
そのような場合、ビジネス ロジックをストアド プロシージャに入れる状況は (あるとしても) 非常に少ないと思います。

于 2009-10-08T07:35:15.557 に答える
0

まあ、すべての詳細はさておき: はい。

NH はオブジェクト リレーショナル マッパーであり、「ドメイン駆動設計」と呼ばれるアーキテクチャ スタイルで使用することを目的としています。その重要な側面は、データの保存と読み込み以外のことについてデータベースを完全に無視することです。この概念はPersistence Ignoranceと呼ばれ、そのモットーは: There is no databaseです。

この観点からすると、ビジネス ロジックをストアド プロシージャまたはその他の db オブジェクトに含めることは推奨されないだけでなく、明らかに深刻なコード臭がします。

推奨されるドメイン駆動設計の方法論に従うと、ビジネス ロジックを db に配置する機会がなくなります。単に、ビジネス レイヤーの構築時に db が存在しないためです...

于 2009-10-08T07:48:18.473 に答える