2009-07-09 11 views
0

私自身のモデルクラスをリポジトリパターンで使用したいと考えています。私はLINQ to SQLが生成するクラスに依存したくない。それは実行可能ですか?どのように私はWhere(および他の選択を処理しないときにそのFunc<MyModel, bool>が、SQLへのLINQはFunc<LinqToSqlModel, bool>生成されたモデルを使用しないLINQ To SQLへのリポジトリパターン

私はこれを考案してきましたが、私はエンジニアそれ以上に開始される可能性があります

...

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

は、このあまりリダイレクトですか?

私がやりたいすべてがEnitiesにSQL、LINQのLINQなどが 誰もがすべてのリソースを持っていますかどうかをバックエンドに任意の実装を持つことが可能であるMyModelのリポジトリを持っています?

答えて

0

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

2

あなたはここで多くのオーバーヘッドを作り出していると思います。 Linq to Sqlが生成するすべてのクラスは部分的なものなので、名前空間を正しく設定すれば、必要な情報だけでクラスを拡張することができます。隠したいものがあれば、そのアクセスレベルをdbmlの内部に設定します。

私は実際にクラスをすべて書き直すことをお勧めしません。

0

最初からすべてを実装する必要がある理由はわかりません。 しかし、より多くのコントロールをリポジトリに追加したい場合は、部分クラスを使用して簡単に実現できます。

0

モデルをlinq to sqlモデルに置き換えたい場合は、モデルを属性で飾ることができます。これにより、基本的に独自のモデルを定義し、linqにSQLにdatacontextあなたにも構築する必要があります)

例:

[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>(); 
+0

linqからsqlに近いモデルを結合したくありません。 –

関連する問題