Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在两个字段中组合两个Sting C#数据库Linq Lambda表达式_C#_Database_Linq_Lambda_Expression - Fatal编程技术网

如何在两个字段中组合两个Sting C#数据库Linq Lambda表达式

如何在两个字段中组合两个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

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
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都是字符串类型。它在编译时不会出错。它会导致运行时错误,可能包括堆栈跟踪。这将有助于确定哪些操作不受支持。