[英]mvc c# combine more than two query results
我有幾個具有相同結果結構的通用查詢,我試圖將它們組合在一個變量中,以便我可以將它們傳遞給視圖。
var query1 = db1.table.Where(a => a.ID == filter1).Select(x=> new ViewModel { //columns}).LastOrDefault();
var query2 = db1.table.Where(a => a.ID == filter2).Select(x=> new ViewModel { //columns}).LastOrDefault();
var query3 = db1.table.Where(a => a.ID == filter3).Select(x=> new ViewModel { //columns}).LastOrDefault();
var combi = query1.Concat(query2);
我無法結合兩個查詢結果,我嘗試使用Concat或Union,但它給出了下面的錯誤。
'ViewModel'不包含'Concat'的定義,並且沒有擴展方法'Concat'可以找到接受類型'ViewModel'的第一個參數(你是否缺少using指令或匯編引用?)
謝謝!
如果你要用實際類型替換var
關鍵字,你會看到你有這個:
ViewModel query1 = db1.table.Where(a => a.ID == filter1).Select(x => new ViewModel { /* columns */ }).LastOrDefault();
ViewModel query2 = db1.table.Where(a => a.ID == filter2).Select(x=> new ViewModel { /* columns */ }).LastOrDefault();
ViewModel query3 = db1.table.Where(a => a.ID == filter3).Select(x=> new ViewModel { /* columns */ }).LastOrDefault();
為了做一個.Concat(...)
它應該是IQueryable<ViewModel>
或IEnumerable<ViewModel>
。
這是導致你悲痛的.LastOrDefault()
調用。
嘗試這個:
IQueryable<ViewModel> query1 = db1.table.Where(a => a.ID == filter1).Select(x => new ViewModel { /* columns */ });
IQueryable<ViewModel> query2 = db1.table.Where(a => a.ID == filter2).Select(x=> new ViewModel { /* columns */ });
IQueryable<ViewModel> query3 = db1.table.Where(a => a.ID == filter3).Select(x=> new ViewModel { /* columns */ });
var combi = query1.Concat(query2).Concat(query3).LastOrDefault();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.