[英]LINQ to Razor View SubQuery with Alias Value
背景:我有一些表與以下LINQ語句連接:
var viewModel = new ContractorViewModel();
var Query = (from c in db.Contractors
join cmb in db.ContractorManagedBies on c.ManagedBy equals cmb.ManagedBy
join dc in db.DCLocMappings on c.LocationID equals dc.LocationID
join at in db.AccountTitles on c.AccountTitleID equals at.AccountTitleID
where dc.DeliveryCenter == location
select new ContractorViewModel
{
Id = cmb.ManagedBy,
FullName = cmb.ManagerFirstName + ' ' + cmb.ManagerLastName
}).ToList();
從第一個查詢開始,行值是一個整數。 我還想運行一個並行LINQ查詢,以將另一個表中的值與cmb.ManagerFirstName + ' ' + cmb.ManagerLastName
的值cmb.ManagerFirstName + ' ' + cmb.ManagerLastName
並在運行同一視圖時顯示該值。 將其放在頁面頂部時,可以在視圖中獲取大多數詳細信息數據: @model IEnumerable<DriverDatabase.Contractor>
;但是,無論如何,我都無法在視圖中獲取FullName的值。 我嘗試了ViewModel方法。 我以為子查詢會加入表並在foreach循環的字段中添加組合的名字和姓氏值,但事實並非如此。 我的問題是,如何使用LINQ和ASP.NET 4.5將FullName值獲取到Razor View? 我確實在訪問兩個數據集,但是foreach只識別一個。 當前, @Html.Display("FullName")
不會返回任何內容,也沒有用於呈現FullName的對象。
首先,我將在連接中使用雙引號(而不是單引號)。
FullName = cmb.ManagerFirstName + " " + cmb.ManagerLastName
然后,您應謹慎使用linq中的字符串連接到實體
例如,如果第一個元素為null,則整個結果將為null。
因此,請使用合並運算符(我認為將其放在左側就足夠了)
FullName = cmb.ManagerfirstName ?? string.Empty + " " + cmb.ManagerLastName
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.