linq中的条款包括在内

时间:2017-04-27 19:42:35

标签: c# linq-to-sql

我有以下声明:

var field = _context.Set<Field>().FromSql($@"SELECT Id, F1, F2, F3
                            FROM Table1")
            .Include(model => model.Table2)
            .Include(model => model.Table2.Table3);

        return PartialView("_IndexGrid", field.ToList());

我想在其中添加where子句,以便可以将单个给定的搜索字符串应用于所有三个实体。例如,如果我有一个名为搜索的变量,我希望将Table1,Table2和Table3全部过滤到搜索。每个表将在不同的字段名称上应用过滤器。  我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

你能这样做吗?

var field = _context.Set<Field>().FromSql($@"SELECT Id, F1, F2, F3
                            FROM Table1")
                        .Include(model => model.Table2)
                        .Include(model => model.Table2.Table3)
                        .Select(g => new Field {
                            Foo = g.Stuff,
                            Bar = g.Thing,
                            Baz = g.Table2.Where(t => t.MyName.Equals(search)),
                            Feh = g.Table2.Table3.Where(t => !t.YourName.Equals(search))
                        });