何か馬鹿げたことをしているような気がします。
私はLinqtoSQLライブラリを何年も実行していて、同じデータベースを使用するいくつかのアプリケーションでそれを使用しました。でも、あまり満足していないことがたくさんあり、新しいプロジェクトを手に入れました。アプリケーションとLinqtoSQLライブラリの間にビジネスロジック層を配置すると便利だと思っていました。問題は、設計すればするほど、LinqtoSQLのように見えるものを実装しようとしているように見えることです。
たとえば、アプリケーションにはビジネスロジックへの単一のエントリポイントが必要であると判断しました。そのため、エントリポイント(私はMCPと呼びます)にはシステム内のクラスのプロパティがあり、このプロパティには、対応するテーブルのすべてのオブジェクトを含む「リスト」(おそらくIQueryable)があります。これは、Linq to SQLデータコンテキストによく似たサウンドと外観になります...さらに、既存のすべてのオブジェクトに追加のオブジェクト/アクセサーをラップすることは、「実際の」オブジェクトを非表示にするための大量の追加入力であるように感じます。
そのため、私は自分がすでに持っているものの悪い再実装をしているだけだと少し恐れています。
反対に、私はうまくいけば、すべてがどのように機能するかを改善しています。たとえば、オブジェクトがシステム内の他の何かにアクセスする方法ではなく、1つの論理的な責任を持っていることを確認します。(たとえば、CarCPにはAddDriver(Person p)のメソッドがあるかもしれませんが、Personには必ずしもCarCPに戻るメソッドがあるとは限りません。)
それで、この中間層を持っている方が良いかもしれませんが、私はそれをひどく設計しているだけですか?