具有LINQ表达式的域对象,实体对象和存储库

时间:2016-03-09 12:17:29

标签: vb.net entity-framework generics automapper

我有WPF MVVM应用程序,其中使用Code First从数据库生成实体对象。然后我有域对象,业务逻辑在哪里。我有通用的存储库,它返回域对象(从实体对象AutoMapped)。有没有办法轻松地将域对象谓词(???)转换为实体谓词?我希望尽可能避免在MainRepository中公开实体对象。

ODP.Net (Oracle.DataAccess.dll)

1 个答案:

答案 0 :(得分:1)

如果我是你,我不会担心所有封装并摆脱你的图层对象:https://vimeo.com/131633177

但是,如果您绝对坚持所有这些分层,AutoMapper也会为您转换表达式:

https://github.com/AutoMapper/AutoMapper/wiki/Expression-Translation-(UseAsDataSource)

实体中定义的表达式可以自动转换为域模型。但是,您的示例需要接受Expression<Func<TEntity, bool>>,而不是Func<TEntity, bool>才能使用此功能。实体框架仅处理表达式,而不处理传入的任何随机委托。