使用LINQ, Lambda達到SQL in 多欄位寫法

使用LINQ, Lambda達到SQL in 多欄位寫法

不能直接對SQL LINQ使用Contains
List<string> list_Name = new List<string>() { "Alex", "Peter"};
	
//不支援Contains語法
//var query = from t1 in db.Table1
//            where list_Name.Contains(t1.Name)
//            select t1;
	
var query = from t1 in db.Table1
            select t1;
	
//query = query.Where(x => list_ima01.Contains(x.Ima01));  //不支援Contains語法
query = query.where(x => list_Name.Any(a => a == x.Name);  //改用Any
	
var list = query.ToList();

 

先把SQL LINQ 進行ToList為Object後, 就可以使用Contains

List<string> list_AAA = new List<string>() { "123", "456", "789"};
  
var query = from t1 in AAA
            select t1;

var list = query.ToList();  //先ToList

var q2 = list.Where(x => list_AAA.Contains(x.A));  //就可以對Object LINQ使用Contains

var list_q2 = q2.ToList();

 

 

 

 

留言

這個網誌中的熱門文章

ORA-12514: TNS: 監聽器目前不知道連線描述區中要求的服務

Oracle 例外控制(Exception Control)

Oracle 工作排程 DBMS_JOB 筆記