【发布时间】:2017-04-26 22:04:17
【问题描述】:
我已经看到使用一个 LINQ 查询填充 ViewModel 的场景,如下所示。 问题:如何填充以下 ViewModel 的 TotalSale 属性(列) - 这是 Sale 列的总计? 注意:我使用的是最新版本的 ASP.NET Core 和 VS2015。
视图模型:
public class CategProdViewModel
{
public string Category { get; set; }
public string ProductName { get; set; }
public float Sale { get; set; }
public float TotalSale { get; set; }
}
控制器:
var innerJoinQuery = from category in categories
join prod in products on category.ID equals prod.CategoryID
select new CategProdViewModel { Category = category.Name, ProductName = prod.Name, Sale = prod.Sale };
【问题讨论】:
-
为什么不直接设置一个字段值呢?你期望它如何计算?我在这里看不到任何
quantity属性。附言这是如何编译的? C# 没有real关键字。你在使用 roslyn 转换器吗? -
@AlexZhukovskiy 我的意思是
float在迁移期间在 SQL Server 中转换为真实的。在你指出之后,我已经纠正了错字(谢谢)。不,我没有使用任何转换器。只需简单迁移到 SQL Server 2012。 -
好的,但是您仍然没有回答应该如何形成 GrandTotal。或者您只想在所有
CategProdViewModel对象中复制一个值?这是可能的,但似乎是一个逻辑错误。 -
@nam 将使用分组方式形成总计,但您需要告诉我们是按 ProductName 还是按 Category 和 ProductName 还是...?
-
@AlexZhukovskiy 我们将所选类别中所选产品的详细信息显示为:
CategoryName, ProductName, Sale。假设在一个会计年度内销售的总产品是 x 数。然后在带有上述列的表格中显示 x 行数,并在销售列的末尾显示该销售的总计。
标签: c# asp.net-mvc linq asp.net-core asp.net-mvc-viewmodel