我得到這個錯誤:The entity or complex type 'ebs.Models.ExtraItemVM' cannot be constructed in a LINQ to Entities query.
在這條線:Asp.Net MVC C#附加信息:實體或複雜類型不能在LINQ構造查詢實體
booking.ExtraItemsVM = extralist.ToList();
我見過的這個其他例子,如果您嘗試映射到實際的數據庫表,則表示出現此錯誤。
在我的情況下,我試圖映射到ViewModel。
我的控制器代碼如下。
首先從數據庫中獲取「額外」的列表:
// get a list of extras
var extralist = db.Extras.Where(x => x.hotel_id == AccID)
.Select(e => new ExtraItemVM
{
eID = e.additem_id,
Description = e.additem_text,
Price = e.additem_cost,
Count = 0
});
然後創建一個新的「預訂」視圖模型,並嘗試額外的列表附加到Booking.ExtraItemsVM屬性失敗:
Booking booking = new Booking();
booking.ExtraItemsVM = extralist.ToList();
的ViewModels *
public class Booking
{
public int ID { get; set; }
public bool HasResults { get; set; }
public List<ExtraItemVM> ExtraItemsVM { get; set; }
...
...
}
public class ExtraItemVM
{
public int ID { get; set; }
public long eID { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
public int Count { get; set; }
}
數據庫模型
public class Extra
{
[Key]
[Display(Name = "ID")]
public long additem_id { get; set; }
public long hotel_id { get; set; }
public string additem_text { get; set; }
public decimal additem_cost { get; set; }
}
我不認爲我映射到數據庫表的 - 所以任何人都可以請幫助說明我做錯了嗎?
謝謝
馬克
我想嘗試的第一件事是'。選擇([...]' –
喜@AlexandreRondeau前添加'.AsEnumerable()' - 就是這樣 - 謝謝 - 如果你提交答案...歡呼聲,馬克 – Mark
嗨@pitaylor - 謝謝你的建議。它試圖附加到預訂視圖模型時仍然出現錯誤。 – Mark