Linq 如何从模型中的另一个表中添加总和?
因此,我在控制器中有如下视图设置:Linq 如何从模型中的另一个表中添加总和?,linq,linq-to-sql,asp.net-mvc-5,Linq,Linq To Sql,Asp.net Mvc 5,因此,我在控制器中有如下视图设置: public ActionResult View(Guid projectID) { OnboardModel model = context.onboard_projectInfos.Where(x => x.projectID == projectID).Select(x => new OnboardModel()
public ActionResult View(Guid projectID)
{
OnboardModel model = context.onboard_projectInfos.Where(x => x.projectID == projectID).Select(x =>
new OnboardModel()
{
propertymanagername = x.propertymanagername,
propertymanagercontactemail = x.propertymanagercontactemail,
date_modified = (DateTime)x.date_modified,
projectmanagercontactnumber = x.projectmanagercontactnumber,
Developer = x.onboard_projectCreate.Developer,
status1 = x.onboard_projectCreate.status1,
ProjectName = x.onboard_projectCreate.ProjectName
}).SingleOrDefault();
var pix = projectID.ToString();
context.onboard_BuildingInfos.Where(x => x.buildprojectID == pix).GroupBy(x => x.buildprojectID).Select(g => {
model.totalres = g.Sum(b => b.numberofres);
model.totalcom = g.Sum(b => b.numberofcommer);
});
return View(model);
}
问题是从BuildingFos中获取numberofres和numberofcommer的总和。
使用.Select会显示错误:
错误CS0411无法从用法推断方法“Queryable.Select(IQueryable,Expression>)”的类型参数。尝试显式指定类型参数
如何正确编写此LINQ语句
谢谢。您不能在select中修改对象(只能创建新对象)。此外,不能向现有对象添加新属性 我们假设
OnboardModel
定义了totalres
和totalcom
属性
var query = context.onboard_BuildingInfos
.Where(x => x.buildprojectID == pix)
.GroupBy(x => x.buildprojectID);
foreach(var g in query)
{
model.totalres = g.Sum(b => b.numberofres);
model.totalcom = g.Sum(b => b.numberofcommer);
}
哦,我明白了,谢谢你。