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

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

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

 

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

  1. List<string> list_AAA = new List<string>() { "123", "456", "789"};
  2. var query = from t1 in AAA
  3. select t1;
  4. var list = query.ToList(); //先ToList
  5. var q2 = list.Where(x => list_AAA.Contains(x.A)); //就可以對Object LINQ使用Contains
  6. var list_q2 = q2.ToList();

 

 

 

 

留言

這個網誌中的熱門文章

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

Oracle 工作排程 DBMS_JOB 筆記

Oracle 例外控制(Exception Control)