我有一个名为Products
的表,其中包含名为ApprovedState
的列,其中包含"AL,AK,AR"
之类的值。我从前端获取了一个CSV列表listCSVState='AL,AK'
。
有人可以帮我写一个LINQ查询,它会返回listCSVState
中批准的所有产品。我尝试过以下代码,但没有得到正确的结果。
from product in db.Products where ((listCSVState== null) || (listCSVState.Contains(product.StateApprovals)))
答案 0 :(得分:0)
LINQ to Objects中的小部分,由于缺少string.Split
支持而在LINQ to Entities中很棘手。
仍然,Any
,string.Contains
和字符串连接的组合可以完成这项工作,就像这样
var states = listCSVState.Split(',');
var query = db.Products.Where(product => states.Any(state =>
("," + product.StateApprovals + ",").Contains("," + state + ",")));