私は分離されたドメインモデルを構築しようとしています。私の(抽象的な)ドメインモデルはエンティティ(例えばProduct)を定義し、具体的なSQL実装はそのドメインエンティティへの変換メソッドを提供します。Linq式の基本クラスを変換する
例えば:
public interface IDomainEntity<T> where T : class
{
T ToDomainEntity();
}
私の具体的なSQLクラスは、そのインターフェイスを実装:私の製品ドメインサービスから
public partial class Product : IDomainEntity<Domain.Product>
{
public Domain.Product ToDomainEntity()
{
return new Domain.Product
{
ProductId = this.ProductId,
...
};
}
}
を、私は一般的なフィルタ法
を公開できるようにしたいですpublic virtual IQueryable<T> Filter(Expression<Func<T, bool>> predicate)
{
return GetAll().Where(predicate);
}
この場合、TはDomain.Productタイプです。私が持っている問題は、SQLリポジトリの実装では、式をDomain.Product型からSql.Product型に変換する必要があるため、Linq to Sqlテーブルに対して使用できることです。これは理にかなっていない場合は、事前に
Expression<Func<Domain.Product, bool>>
Expression<Func<Sql.Product, bool>>
に謝罪:
は、それが一つの発現基盤を取り、別のに変換することが可能です。
Hello Mark、私はあなたが私のジレンマに直接責任があると信じています。ネット'。実際に私がMary Rowanに入っていることを認識した上で、上記は私の努力によって償還されました:-)私がしようとしたのは、消費者がデータを検索する際の柔軟性を高める方法を作り出すことでした。ドメインサービスであまりにも多くの検索メソッド(おそらく同様のシグネチャを持つ)を作成する必要がなくなります。指導をありがとう - 私は再び考えます。 – Neilski