EXCEPT运算符是否可以排除列包含数组数据的数据

时间:2012-05-28 00:17:42

标签: c# model-view-controller linq-to-sql

假设有一串逗号分隔的文本值,如数组:

var excludelist ="apples,oranges,grapes,pears";

excludelist值可能来自对数据库中表的查询。

假设一个查询,其中我们要返回所有行,除了名为Fruit的字段包含来自excludelist的任何项目的那些行。

var qry = from s in context.Groceries.Where(s => s.Fruit(here is where we need to exclude the items??) join u in context.Users on s.Owner equals u.User_ID

有人可以提供示例链接到SQL答案吗?

2 个答案:

答案 0 :(得分:0)

你试过Except吗?

var qry = from s in context.Groceries.Except(excludelist)...

SQL链接有CONTAINS(和!CONTAINS)

where !excludelist.Contains(i)
        select i;

答案 1 :(得分:0)

我这样解决了:

我有一个数据库表,其中包含我想要排除的水果的名称,我创建了一个List(IList显然不起作用)。

List<string> excludedfruit = context.ExcludedFruit.Select(x => x.ExcludedFruitName).ToList();

然后我使用了以下Linq to SQL查询(部分显示)

        var qry = from s in context.Groceries
                .Where(s => !excludedfruit.Contains(s.Fruit))