小白求解,LINQ 多表join后select取值的问题

Anceril 2019-08-15 09:26:17
假设我有一张表叫User,我在User表的实体类里声明了一个NotMapped的属性,先叫他DeptName:
...
[NotMapped]
public string DeptName { get; set; }
...
还有一张表叫Department,User表通过DeptId字段与Department表关联

现在我对这两张表用Linq进行join,最后select的时候,能否在select里直接对User实体的DeptName属性赋值?

我现在的做法是new一个匿名对象,代码大致长这样:

var query =
from u in User
join d in Department on u.DeptId equals d.Id
select new { User = u, DeptName = d.Name };

然后再用toList()转成IEnumerable操作,但是写起来总是觉得繁琐

var list = query.ToList().Select(q =>
{
q.User.DeptName = q.DeptName;
return q.User;
}

能不能做到在查询表达式里就搞定这个赋值,而不用再另外写代码?
...全文
232 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
叫我 Teacher 周 2019-08-16
  • 打赏
  • 举报
回复
麻烦的话,就声明一个输出的model 呗,然后就可以 Select(m=>new XXXModel { .... })
正怒月神 2019-08-15
  • 打赏
  • 举报
回复
#1正解,不赘述了
exception92 2019-08-15
  • 打赏
  • 举报
回复
改为 new User ,把user的属性重新赋值一遍即可。

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧