2013-10-31 72 views
0

我将用示例解释我的问题。如何更新linq查询结果

可以说我有linq查询结果。

var result1=from c in client 
    select new my_type 
    { 
     ... 
      stockDesctiption=?? 

    }; 

我们会说Client已提出所谓stockId。这与dammadgeStockHistory表中的stockId相同。这些表没有连接任何外键约束。

如果我需要得到dammadgeStockHistory.stockDescrption为每个客户端如何做到这一点。

回答

1

加入表按这个领域(不需要外键约束):

var result1 = from c in client 
       join dsh in dammadgeStockHistory 
        on c.stockId equal dsh.stockId 
       select new my_type 
       { 
       stockId = c.stockId, 
       // ...     
       stockDesctiption = dsh.stockDescrption 
       }; 

更新,如果你想要做的 '左连接':

var result1 = from c in client 
       join dsh in dammadgeStockHistory 
        on c.stockId equal dsh.stockId into g 
       from cdsh in g.DefaultIfEmpty() 
       select new my_type 
       { 
       stockId = c.stockId, 
       // ...     
       stockDesctiption = cdsh == null ? null : dsh.stockDescrption 
       }; 
+1

dammageStockHistory,但+1很好的解决方案:) – gleng

+1

@gleng谢谢,固定错字 –

+0

加入将只显示谁拥有dammadgeStockHistory的客户端。但我需要得到所有的客户一起stockDescrption –