我想在lambda中使用linq我只想选择一个连接表 像
select r* from report r left join favorites f on f.reportid = r.reportid
这是我现在拥有的,我想将结果分配给模型对象
List<Report> reports = new List<Report>(db.UserFavorites
.Join(db.Reports, fav => fav.ReportID, rep => rep.Report_ID,((fav,rep) => new Report (rep)))
.Where(x => x.Favorites.UserID == new Guid(userID))
.Select new { rep }
.ToList()
);
return reports;
我正在为选择做准备。结果将变为匿名还是将保留Report对象?
答案 0 :(得分:1)
new List<Report>
重新复制它。rep
属于Report类型,因此只需执行(fav, rep) => rep
而不是创建新的Report实例。rep
,即Select(rep => rep)
。但是,如果您返回输入,则可以完全省略“选择”。总共应该是这样的:
List<Report> reports = db.UserFavorites
.Join(db.Reports, fav => fav.ReportID, rep => rep.Report_ID, (fav, rep) => rep)
.Where(x => x.Favorites.UserID == new Guid(userID))
.ToList();
return reports;