我想用LINQ來填充列表中的列表來查詢我的數據庫。LINQ在列表中選擇一個列表
我面臨的問題是我不確定如何選擇數據到子列表中。
當試圖執行下面的代碼,我收到錯誤
錯誤1無法隱式轉換類型「System.Linq.IQueryable」到「System.Collections.Generic.IEnumerable」。一個顯式轉換存在(是否缺少強制轉換?)
模型類是像這樣:
public class _LayoutViewModel
{
public List<CallGuideMenuL1> CGL1 { get; set; }
}
public class CallGuideMenuL1
{
public string Area { get; set; }
public List<CallGuideMenuL2> Products { get; set; }
}
public class CallGuideMenuL2
{
public int CallGuideProductId { get; set; }
public string Product { get; set; }
}
和DB背景:
public class CallGuideArea
{
public int CallGuideAreaId { get; set; }
public string Area { get; set; }
public List<CallGuideProduct> CallGuideProducts { get; set; }
}
public class CallGuideProduct
{
public int CallGuideProductId { get; set; }
public string Product { get; set; }
public int CallGuideAreaId { get; set; }
public DateTime Added { get; set; }
public DateTime? Deleted { get; set; }
}
在我的控制,我試圖選擇像這樣的數據:
_LayoutViewModel vm = new _LayoutViewModel();
vm.CGL1 = from a in db.CallGuideArea
.SelectMany(p => p.CallGuideProducts)
select a;
我很確定它是select a;
行是這個問題,因爲我需要將數據分配回CallGuideMenuL1
和CallGuideMenuL2
的屬性。
任何人都可以在正確的方向指向我正確的LINQ表達式嗎?
什麼是vm.CGL1? –
如果vm.CGL1是IList,您可以嘗試使用vm.CGL1 = db.CallGuideArea.SelectMany(p => p.CallGuideProducts).ToList(); –
@GiorgiNakeuri'vm.CGL1'是視圖模型類,我已經更新了問題以包含它。 – Gareth