[英]Convert DataTable to IEnumerable<T> in ASP.NET Core 2.0
[英]Convert list object to IEnumerable<> in ASP.NET Core
我在控制器端使用 EF 構建了一個連接查詢。
如何將我需要的列從控制器傳遞到視圖?
我的查詢是:
var unretObj = _unitOfWork.CartsTransaction.GetUnreturnedCarts(branchId, compId)
.Join(_unitOfWork.ApplicationUser.GetAll(),
ct => ct.UserId,
au => au.UserId,
(ct, au) => new { ct, au })
.Join(_unitOfWork.Lock.GetAll(),
ctau => ctau.ct.CartMacId,
l => l.MacId,
(ctau, l) => new { ctau,l })
.Select(result => new
{
result.ctau.ct.UnlockTime,
result.l.LockIdByComp,
result.ctau.au.FullName,
result.ctau.au.PhoneNumber
}).ToList();
我創建了一個模型類(未映射到數據庫),其中包含我需要的列:
[NotMapped]
public class UnreturnedLocks
{
public DateTime UnlockTime { get; set; }
public int LockNumber { get; set; }
public string FullName { get; set; }
public string PhoneNumber { get; set; }
}
如何將對象unretObj
轉換為IEnumerable<UnreturnedLocks>
以便將其傳遞給視圖?
還是有另一種方法可以在視圖中使用通用對象而不轉換它?
.Select(result => new {...}
將返回匿名對象的IQueriable
,然后您需要將它們轉換為IEnumerable<UnreturnedLocks>
,如下所示:
...
.Select(result => new
{
result.ctau.ct.UnlockTime,
result.l.LockIdByComp,
result.ctau.au.FullName,
result.ctau.au.PhoneNumber
})
.AsEnumerable()
.Select(res => new UnreturnedLocks
{
UnlockTime = res.UnlockTime
....
})
.ToList();
或者,您可以使用Automapper 可查詢擴展
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.