2013-04-12 41 views
1

這是我如何可以返回合併兩個字符串列結果:合併不同類型的列值在LINQ查詢

context.DBSET.Select(e => e.STRING_PROPERTY + e.STRING_PROPERTY)... 

我怎麼能在一個字符串結果合併e.STRING_PROPERTY + e.INTEGER_PROPERTY?

回答

1

你必須把它轉換爲使用SqlFunctions.StringConvert字符串:

var results = context.DBSET 
        .Select(e => e.STRING_PROPERTY + SqlFunctions.StringConvert((double)e.INTEGER_PROPERTY)); 
0

幾個C#成員由LINQ的支持,以實體和LINQ到幕後的SQL。 Amoung這些,都是String.ToString()和DateTime.Now。你可以寫:

context.DBSET.Select(e => e.STRING_PROPERTY + e.INTEGER_PROPERY.ToString())... 

由於@Reed指出的,SqlFunctions也將工作,將提供可以在查詢執行的操作的更一般的,但不可讀性集。

+1

你會得到這個錯誤:LINQ to Entities不能識別方法'System.String ToString()'方法,並且這個方法不能被轉換成存儲表達式。 )) – user2265414

+1

ToString在EF中不起作用 - 請參閱:http://stackoverflow.com/q/1066760/65358 –