簡體   English   中英

帶有別名值的LINQ to Razor View子查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM