检查一个CSV包含在数据库LINQ to Entities中的另一个CSV列中

时间:2016-01-17 10:19:33

标签: linq csv

我有一个名为Products的表,其中包含名为ApprovedState的列,其中包含"AL,AK,AR"之类的值。我从前端获取了一个CSV列表listCSVState='AL,AK'

有人可以帮我写一个LINQ查询,它会返回listCSVState中批准的所有产品。我尝试过以下代码,但没有得到正确的结果。

from product in db.Products where ((listCSVState== null) || (listCSVState.Contains(product.StateApprovals)))

1 个答案:

答案 0 :(得分:0)

LINQ to Objects中的小部分,由于缺少string.Split支持而在LINQ to Entities中很棘手。

仍然,Anystring.Contains和字符串连接的组合可以完成这项工作,就像这样

var states = listCSVState.Split(',');
var query = db.Products.Where(product => states.Any(state =>
    ("," + product.StateApprovals + ",").Contains("," + state + ",")));