2010-04-13 78 views
2

我有一個包含100列以上的表格。我需要將它加入另一張桌子才能再拿出一列。我是否必須列出左表中的每一列,或者是否有更簡單的方法。使用LINQ to SQL加入將一列添加到複雜對象中

var query = from p in context.policies 
      join s in context.states 
      on p.state_id equals s.state_id 
      select new { 
       p.column1, 
       p.column2, 
       p.column3, 
       <etc> ..., 
       p.column123, 
       s.state_name 
      }; 

有沒有辦法做到這一點,而不創建一個全新的對象只是添加一個字段?

回答

2

而不是單獨的匿名類型列出每個字段,你可以定義抓住整個p對象字段:

... select new { Policies = p, StateName = s.state_name }; 

那麼你將不得不通過obj.Policies.nnn訪問政策領域, etc

這是假設Policies對象可以存在於原始數據集之外。如果它是一個數據行或者這可能不起作用。

+0

太棒了....從來不知道這個實現。謝謝:-) – Raja 2010-04-13 16:57:44

+0

直到幾個星期前,當我遇到一種情況時,我加入兩個集合,並且每個集合的對象具有相同的字段名稱,我不知道匿名類型的顯式命名選項。需要使用明確的命名來解決名稱衝突/歧義。 – dthorpe 2010-04-13 17:11:35