我有一个包含EF Dbcontext和实体的DAL图层。我有一个服务,其中包含一个方法,我希望从逻辑层执行简单的选择。Func <T, dynamic> to Func <TEntity,dynamic>
层: 逻辑=> DalService => DbContext.DbSet.Select(东西)
DAL不知道任何DTO模式。 逻辑层不知道任何实体。
基本上,我想转换: Func<T, dynamic>
选择 到 Func<TEntity, dynamic>
选择,我可以基本上在DbSet<TEntity>
使用。
感谢
FWIW,我会考虑你的架构是一个反模式的东西,我相信你正在做这个分离的担忧或使单元测试更容易。你的“逻辑”层应该直接访问DbContext,以减少对复杂中间件的需求,比如你正在寻找的东西。如果需要,该层应该将任何结果映射到DTO模型。 –
也许它是'表达式'而不是'Func''? –
ASpirin
看到这个问题的类似要求:https://stackoverflow.com/questions/2797261/mutating-the-expression-tree-of-a-predicate-to-target-another-type –