简体   繁体   English

更高效的Linq表达

[英]More efficient Linq expression

I have this Linq Join 我有这个Linq加入

var NewQuote = (from qw in Q
                        join NW in NewNotes on qw.RECID equals NW.RECID into temp
                        from j in temp
                        select new Quotes
                        {
                            QuoteNumber = qw.QuoteNumber,
                            CustPartNumber = qw.CustPartNumber,
                            ITEMGROUPID = qw.ITEMGROUPID,
                          LotSize = qw.LotSize,
                          EAU = qw.EAU,
                          CONTACTPERSONID = qw.CONTACTPERSONID,
                          QUOTATIONSTATUS = qw.QUOTATIONSTATUS,
                          QUOTESENTDATE = qw.QUOTESENTDATE,
                          PricePerPiece = qw.PricePerPiece,
                          QuoteValue = qw.QuoteValue,
                          Email = qw.Email,
                          RECID = qw.RECID,
                          Notes = j == null ? "" : j.NOTES
                        }).ToList();

Q is of the Quote class but I need to add the data to the Notes field from NewNotes. Q是Quote类的,但是我需要将数据从NewNotes添加到Notes字段中。 Is there a better way to do this than listing every field from the Quote class? 有比列出Quote类中的每个字段更好的方法吗? If I have to add fields to Quote then I have to document to come to this section of code and update as well. 如果我必须在Quote中添加字段,那么我必须记录该部分代码并进行更新。

Why you create new instances of Quotes if you just want to update one property? 如果只想更新一个属性,为什么要创建新的Quotes实例?

var query = from qw in Q join NW in NewNotes 
            on qw.RECID equals NW.RECID into temp 
            from j in temp
            select new { Quote = qw, Notes = j?.Notes ?? "" };

foreach(var x in query)
{
    x.Quote.Notes = x.Notes;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM