此联接的EF Linq查询的正确语法是什么

布拉德·马修斯(Brad Mathews)

我正在尝试获取一个查询,该查询返回针对我的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>()
                };

这是我的ViewModel

 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>'

我(有点,有点)理解的。那么正确的语法是什么?

道格拉斯

您需要LineItemViewModelLineItem实体显式初始化实例您最好将其编写为相关子查询而不是联接:

var query = 
        from i in context.Invoices 
        where i.InvoiceID == id
        select new InvoiceViewModel()
        {
            InvoiceID = i.InvoiceID,
            CustomerID = i.CustomerID,
            InvoiceNote = i.Note,
            InvoiceDate = i.InvoiceDate,
            Terms = i.Terms,
            LineItems = 
            (
                from li in context.LineItems
                where li.InvoiceID == i.InvoiceID
                select new LineItemViewModel
                {
                    LineItemID = li.LineItemID, 
                    InvoiceID = li.InvoiceID,
                    Quantity = li.Quantity,
                    Item = li.Item,
                    Amount = li.Amount,
                    LineItemNote = li.LineItemNote,
                }
            ).ToList()
        };

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#-LINQ to EF中此查询的语法是什么?

来自分类Dev

此操作的正确语法是什么?

来自分类Dev

此LINQ查询中的联接有什么问题?

来自分类Dev

此SQL SELECT语句的正确语法是什么

来自分类Dev

嵌套联接查询的Linq语法

来自分类Dev

多个左联接的正确语法是什么?左表的where条件是什么?

来自分类Dev

查询的正确语法是什么

来自分类Dev

EF-Linq查询排序的最快方法是什么?

来自分类Dev

EF-Linq查询排序的最快方法是什么?

来自分类Dev

使用内部联接的更新查询的正确语法

来自分类Dev

两个类/表之间的联接的正确的Hibernate Query语法是什么?

来自分类Dev

SQL我是否正确使用此联接?

来自分类Dev

EF6 Linq查询以视图模型联接表

来自分类Dev

如何使用表联接优化此查询?

来自分类Dev

如何加快此mysql联接查询

来自分类Dev

如何使用自联接优化此查询?

来自分类Dev

EF 7的Add-Migration命令的-Context参数的正确语法是什么?

来自分类Dev

EF 7的Add-Migration命令的-Context参数的正确语法是什么?

来自分类Dev

为什么此子查询比内部联接快10倍

来自分类Dev

为什么在编译为sql时EF 5.0不支持此EF 4.x LINQ语法?

来自分类Dev

此数组语法是什么意思?

来自分类Dev

此jquery语法的功能是什么?

来自分类Dev

此jquery语法的功能是什么?

来自分类Dev

此ocaml语法是什么意思?

来自分类Dev

我需要帮助来加快此EF LINQ查询的速度

来自分类Dev

在c#中此查询的LINQ解决方案是什么?

来自分类Dev

MySQL联接查询的优点是什么

来自分类Dev

LINQ中多个左联接的语法正确吗?

来自分类Dev

LINQ中多个左联接的语法正确吗?

Related 相关文章

热门标签

归档