我一直在阅读 Tim McCarthy关于 .NET 中 DDD 的精彩书籍。不过,在他的示例应用程序中,他的底层数据访问使用的是 SqlCE,并且他正在手工制作 SQL 内联。
我一直在玩一些利用实体框架的模式,但我一直坚持如何将 IRepository linq 查询准确地映射到底层数据访问层。
我有一个名为的具体存储库实现。
public EFCustomerRepository : IRepository<DomainEntities.Customer>
{
IEnumerable<DomainEntities.Customer> GetAll(
Expression<Func<DomainEntities.Customer, bool>> predicate)
{
//Code to access the EF Datacontext goes here...
}
}
在我的 EF 模型中,我使用的是 POCO 实体,但即便如此,我的 DomainEntity.Customer 和我的 DataAccessLayer.Customer 对象之间也不会存在本机映射。
所以我不能只Expression<Func<DomainEntities.Customer, bool>> predicate
作为参数传递EFContext.Customers.Where(...);
有没有一种简单的方法来映射
Expression<Func<T, bool>> predicate
=>Expression<Func<TOTHER, bool>> predicate
还是我要说这一切都错了?任何建议/指针表示赞赏。