为了账号安全,请及时绑定邮箱和手机立即绑定

LINQ Select 如何实现动态映射?

LINQ Select 如何实现动态映射?

一只名叫tom的猫 2018-12-07 03:11:01
正常情况一般是采用匿名: db.Table.AsNoTracking().Where().Select(cc => new { cc.id, cc.name}); 同时也有用具体实体来映射: db.Table.AsNoTracking().Where().Select(cc => new Table { id = cc.id, name = cc.name }); 现在问题来了, 因为不同场景需要不同字段, 业务处理代码均一样, 仅仅映射的字段不一样而已, 这地方该如何处理? 分不多, 见谅
查看完整描述

5 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

采用老方法,数据源从外部传入,内部只进行处理

查看完整回答
反对 回复 2019-01-21
?
jeck猫

TA贡献1909条经验 获得超7个赞

使用不同DbContext,在每个DbContext中分别进行映射

查看完整回答
反对 回复 2019-01-21
?
GCT1015

TA贡献1827条经验 获得超4个赞

这样还是没有减轻代码量, 几百行代码就 select  new {} 不一样。。。。

查看完整回答
反对 回复 2019-01-21
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

.Select(u =>
{
if (XXX)
return new { Name = u.FirstName + u.LastName };

return new { Name = u.LastName + u.FirstName };
});

查看完整回答
反对 回复 2019-01-21
  • 5 回答
  • 0 关注
  • 416 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信