1
。リポジトリ上のFindメソッドのメソッドシグネチャは次のとおりです。ジェネリックリポジトリLinq2Sqlのインピーダンスミスマッチ問題
T Find(Func<T, bool> query);
私はLinq2Sqlでこれを使用しようとするまで、私は呼びたいときlinq2sqlは、独自のオブジェクトを作成し、その結果として、これはすべて素晴らしいです:
context.visitors.FirstOrDefault(query);
linq2sqlが、それは私が渡しています機能を作成していない種類の機能を期待するので、型の不一致がある
はい...ドメインオブジェクトにビヘイビアを追加したい場合や、メンバのアクセス可能性を制限したい場合があるため、Linq2SQLクラスをドメインオブジェクトとして使用したくありません。 –
動作を追加するのは簡単です:生成されたクラスは*部分クラス*です。つまり、独自の動作を別のファイルに追加できますが、同じクラスに残ります。プロパティのアクセシビリティは、dbmlファイルで指定できます。 –
これは証明ツリーをあるタイプから別のタイプへと変換するよりはるかに簡単なアプローチのように思えます。私はそのアプローチに進み、インターフェイスを介して可視性とアクセスを制限します。 –