0

リポジトリ パターンで独自のモデル クラスを使用したいと考えています。LINQ to SQL が生成するクラスに依存したくありません。それは実行可能ですか?(とLINQ to SQL が必要なWhere場合のその他の選択を処理するにはどうすればよいですか?Func<MyModel, bool>Func<LinqToSqlModel, bool>

私はこれを考案しましたが、私はそれをオーバーエンジニアリングし始めているかもしれません...

interface IModelConverter<T1, T2>
{
  T2 Convert(T1 item);
  T1 Convert(T2 item);
}

これはリダイレクトが多すぎますか?

私がやりたいのはMyModel、LINQ to SQL、LINQ to Enities など、バックエンドで実装できるリポジトリを用意することだけです。リソースはありますか?

4

4 に答える 4

2

ここでは多くのオーバーヘッドが発生していると思います。Linq to Sqlが生成するすべてのクラスは部分的であるため、名前空間を正しく設定すれば、必要な情報を使用してこれらのクラスを拡張できます。また、非表示にしたいものがある場合は、dbmlでそのアクセスレベルをinternalに設定します。

クラスを完全に書き直すことはお勧めしません。

于 2009-07-09T15:39:14.773 に答える
0

なぜすべてを最初から実装する必要があるのか​​、私にはよくわかりません。ただし、リポジトリでより多くのコントロールが必要な場合は、部分クラスを使用するだけでそれを実現できます。

于 2009-07-09T15:40:50.060 に答える
0

Fluent NHibernate に切り替えることにしました。

于 2009-07-11T03:52:13.483 に答える
0

モデルで linq to sql モデルを置き換えたい場合は、モデルを属性で装飾することができます。これにより、基本的に独自のモデルを定義し、linq to sql にモデルをデータコンテキスト (構築する必要がある) と接続する方法を伝えることができます。同じように)

例:

[Table(Name="SomeTable")]
public class SomeClass
{
    [Column(IsPrimaryKey=true, IsDbGenerated=true, AutoSync=AutoSync.OnInsert)]
    internal int MyID {get; set;}

    [Column]
    public String MyString {get; set;}
}

その後、DataContext を作成し、次のようにモデルを処理する方法を指示できます。

var context = new DataContext(connectionString);
context.GetTable<SomeClass>();
于 2009-07-09T15:45:36.493 に答える