如何在两个字段中组合两个Sting C#数据库Linq Lambda表达式
C#数据库Linq Lambda表达式 Str1和Str2都是字符串类型 表中显示了Str1和Str2字段的值如何在两个字段中组合两个Sting C#数据库Linq Lambda表达式,c#,database,linq,lambda,expression,C#,Database,Linq,Lambda,Expression,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<MyTa
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
string myString1=“abc”;
var items1=Dababase1Repository.Find(x=>x.Str1==myString1.List()//工作
字符串myString2=“def”;
var items1=Dababase1Repository.Find(x=>x.Str2==myString2.List()//工作
字符串myString3=“abcdef”;
var items1=Dababase1Repository.Find(x=>(x.Str1+x.Str2)==myString3.List()//不起作用
没有编译错误,但是
生成运行时错误:
用户代码未处理NotSupportedException(在运行时)
我使用了字符串、Trim、Concat和其他可能的方法。我认为str1和str2没有被当作字符串(在运行时)处理,但在编译中没有错误
如何解决这个问题 用这个
string myString3="abcdef";
var items1=Dababase1Repository.Find<MyTableClass1>(x=>string.Concat(x.Str1+x.Str2)==myString3).List();
string myString3=“abcdef”;
var items1=Dababase1Repository.Find(x=>string.Concat(x.Str1+x.Str2)==myString3.List();
您需要lambda之外的字符串变量来组合2个字符串,并将其与myString3
进行比较。字符串串联将产生一个新字符串而不是现有字符串,可能lambda中当前不支持该字符串。这是允许的:3我没有收到任何错误什么类型是x.Str1
和x.Str2
?如果它们是对象
s,您可能需要添加(x.Str1.ToString()+x.Str2.ToString())
Str1和Str2都是字符串类型。它在编译时不会出错。它会导致运行时错误,可能包括堆栈跟踪。这将有助于确定哪些操作不受支持。