Я пытаюсь построить модель несвязанного домена.Моя (абстрактная) модель домена определяет сущность, например «Продукт», а затем моя конкретная реализация SQL предоставляет метод преобразования в эту сущность домена.
Например:
public interface IDomainEntity<T> where T : class
{
T ToDomainEntity();
}
MyЗатем конкретный класс 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имеет тип Домен. Продукт.У меня проблема в том, что в реализации репозитория SQL мне нужно преобразовать выражение из типа Domain.Product в тип Sql.Product, чтобы я мог использовать его в своей таблице Linq to Sql.
Возможно ливозьмите одно выражение и преобразуйте его в другое:
Expression<Func<Domain.Product, bool>>
в
Expression<Func<Sql.Product, bool>>
Заранее извиняюсь, если это не имеет смысла.