【发布时间】:2018-05-06 19:09:16
【问题描述】:
我有两个数据库表,它们通过其中一个表中的属性链接。这些表在 ASP .NET 核心 MVC 应用程序中分别表示为模型。在控制器操作中,我有一个 linq 查询,它对两个表执行连接并从连接结果中选择一组列。我正在尝试将此结果集发送到视图页面,以便数据可以显示在分页表中,但我不确定应该如何完成。
过去,当使用 ASP .NET MVC(非核心)时,我已经能够执行在控制器操作中返回结果集的存储过程,遍历结果集,使用数据构建列表,然后存储可以在视图中访问的 viewbag 中的列表。我尝试将 EntityQueryable 对象直接存储在 viewbag 中,但出现错误,我不确定如何遍历它。
将从 linq 查询返回的数据发送到查看页面的最佳方式是什么?
控制器动作代码:
var resultsObj = (from rd in _db.ResData
join ra in _db.ResAvailability on rd.RecNo equals ra.RecNoDate
where ra.TotalPrice < Int32.Parse(resDeals.priceHighEnd) && ra.TotalPrice > Int32.Parse(resDeals.priceLowEnd)
select new
{
Name = rd.Name,
ImageUrl = rd.ImageUrl,
ResortDetails = rd.ResortDetails,
CheckIn = ra.CheckIn,
Address = rd.Address,
TotalPrice = ra.TotalPrice
}).Take(10);
ViewBag.resultSet = resultsObj;
编辑:
我的查询返回来自多个表的数据(因为它是一个连接),因此来自查询结果的数据必须 被提取并分离到与连接中的表相对应的两个不同的视图模型中。
第一个视图模型代表查询结果的每一行。第二个视图模型只是一个列表,用于保存查询结果中包含的所有行。 我正在尝试了解如何将查询结果中的数据提取到视图模型中,正如我在此处所解释的那样。
【问题讨论】:
标签: c# asp.net sql-server entity-framework asp.net-core-mvc