私はモデルクラスをインターフェイスに再組み込みしています。モデルクラスは、Linq-to-SQLを使用して自動生成されます。デカップリングのためにLinq-to-Sqlでインターフェイスを使用する
class FooRepository
{
// ...
public void Add(IFoo foo)
{
db.Foos.InsertOnSubmit(foo);
}
}
InsertOnSubmitメソッドは、IFooではなくFooのインスタンスを取ります。私はインスタンスをインラインで(Foo)にキャストすることができますが、これは機能しますが、これを行うにはよりクリーンな方法がありますか?
私は既にStructureMapを使用していますが、Addメソッドに属性を追加して、自分のマッピングに基づいて型を解決できますか?
モデルクラスのメソッドをオーバーライドするか、部分的なイベントを使用してこれを行うことはできますか?
私のコントローラは、モデル用のインターフェイスを使用してViewModelオブジェクトに変換します。私は、データアクセス/リポジトリ領域以外のLINQモデルを使用せず、異なるクラスにマッピングしていることを聞いています。インタフェースを使用することで、ある領域での変更を管理し、他の領域に影響を与えないようにするための柔軟性が大幅に向上しました。 – blu
+1しかし、それは悪い答えではない、ちょうど私が今探しているものではない。 – blu
インターフェイスのプロパティを定義してから、クラスのプロパティを定義するのが理想的です。私は使用する傾向がある クラスユーザー{ public String Name {get;セット; } } インターフェイスのクラスがインターフェイスと同じになります。 –