2012-05-18 21 views
0
var query = from s in bv.baParticularHeaders 
      from v in bv.baPlanColumnStructures 
      where x.Contains(s.Particular_Num) 
      select new LevelList 
      { 
       Value = 'Level ' + LTRIM(Rtrim(Convert(Char,P.Level_Num))) + ' - ', 
       id = 'Column ' + LTRIM(Rtrim(Convert(Char,P.Column_Num))) + ' ', 
       Text = v.Column_Description 
      }; 

return query.Distinct().OrderBy(o => o.Value).AsQueryable<LevelList>(); 

錯誤獲取這兩行代碼。錯誤太多字符文字

Value = 'Level ' + LTRIM(Rtrim(Convert(Char,P.Level_Num))) + ' - ', 
        id = 'Column ' + LTRIM(Rtrim(Convert(Char,P.Column_Num))) + ' ', 

任何機構可以幫助我如何在LINQ中進行轉換嗎?

感謝

回答

3

你不能只是剪切和粘貼SQL,重新排列,並希望能得到一個有效的LINQ查詢。的目的是寫入相應的C#代碼,這是翻譯成SQL。在這種情況下,我懷疑你想:

var query = from s in bv.baParticularHeaders 
      from v in bv.baPlanColumnStructures 
      where x.Contains(s.Particular_Num) 
      select new LevelList 
      { 
       Value = "Level " + P.Level_Num + " - "; 
       id = "Column " + p.Column_Num + " ", 
       Text = v.Column_Description 
      }; 

return query.Distinct().OrderBy(o => o.Value).AsQueryable(); 

注意字符串文字 - "Level "'Level '。代碼首先必須是有效的C#。

(假設Level_NumColumn_Num是數字,我不明白爲什麼它會是有意義的修剪它們。)

+0

的OP從類型「字符」的一列是最有可能的固定長度的值轉換爲 - 那至少說明微調功能 –

+0

我想喬恩斯基特代碼 無法投類型「System.Int32」輸入「System.Object的」後發現了以下錯誤。 LINQ to Entities僅支持投射實體數據模型基元類型。 – user957178

+0

@ user957178:你在哪裏得到這個錯誤?你還沒有告訴我們關於你的數據模型的任何信息,這真的沒有什麼幫助... –