【发布时间】:2016-03-11 01:15:28
【问题描述】:
我正在尝试获取一个查询,该查询返回为我的 ViewModel 正确格式化的所有内容,因此我不必从我的实体模型中手动复制所有内容。我有这个 Linq 查询,它给了我一个错误。 :
var query = from i in context.Invoices
join l in context.LineItems on i.InvoiceID equals l.InvoiceID into il
where i.InvoiceID == id
select new InvoiceViewModel()
{
InvoiceID = i.InvoiceID,
CustomerID = i.CustomerID,
InvoiceNote = i.Note,
InvoiceDate = i.InvoiceDate,
Terms = i.Terms,
LineItems = il.ToList<LineItemViewModel>()
};
这是我的视图模型
public class InvoiceViewModel {
public int InvoiceID { get; set; }
public int CustomerID { get; set; }
public string InvoiceNote { get; set; }
public DateTime InvoiceDate { get; set; }
public string Terms { get; set; }
public virtual ICollection<LineItemViewModel> LineItems { get; set; }
}
public class LineItemViewModel {
public int LineItemID { get; set; }
public int InvoiceID { get; set; }
public int Quantity { get; set; }
public string Item { get; set; }
public decimal Amount { get; set; }
public string LineItemNote { get; set; }
}
我得到的错误是(红色波浪线在 LineItems = il.ToList() 的 il 下)
'IEnumerable<LineItem>' does not contain a definition for 'ToList' and the best extension method overload 'Enumerable.ToList<LineItemViewModel>(IEnumerable<LineItemViewModel>)' requires a receiver of type 'IEnumerable<LineItemViewModel>'
我(有点,有点,有点)明白。那么正确的语法是什么?
【问题讨论】:
-
LineItems = il.select new LineItemViewModel() { LineItemID = il.LineItemID, etc }
标签: asp.net-mvc entity-framework linq asp.net-mvc-viewmodel