2016-07-15 48 views
0

C#數據庫的Linq Lambda表達式如何在兩個所在領域的兩個刺結合C#數據庫的Linq Lambda表達式

str1和STR2都是字符串類型。

在表中的值是存在用於字段STR1和STR2

string myString1="abc"; 
var items1=Dababase1Repository.Find<MyTableClass1>(x=>x.Str1==myString1).List(); //WORKING 


string myString2="def"; 
var items1=Dababase1Repository.Find<MyTableClass1>(x=>x.Str2==myString2).List(); //WORKING 


string myString3="abcdef"; 
var items1=Dababase1Repository.Find<MyTableClass1>(x=>(x.Str1+x.Str2)==myString3).List(); //NOTWORKING 

沒有編譯錯誤但 生成運行時錯誤:

NotSupportedException異常是由用戶代碼(在運行時)

未處理

我使用了ToString,Trim,Concat和其他可能的方式。我認爲str1和str2不是作爲字符串對待的(在運行時),但在編譯時沒有錯誤

如何解決此問題?

+0

你需要一個字符串變量拉姆達外結合2串並將其與'myString3'。字符串連接會產生一個新的字符串,而不是現有的字符串,也許它目前在lambda中不受支持。 –

+1

這是允許的:3我沒有得到任何錯誤 – Sherlock

+1

什麼類型是'x.Str1'和'x.Str2'?如果它們是'object',你可能想要添加'(x.Str1.ToString()+ x.Str2.ToString())' – kurakura88

回答

-1

使用此

string myString3="abcdef"; 
    var items1=Dababase1Repository.Find<MyTableClass1>(x=>string.Concat(x.Str1+x.Str2)==myString3).List(); 
+0

這也產生相同的運行時間錯誤 – user946106

+0

它在我的工作很好。 – King