如何在实体框架中重用两个或多个不同DbSet的where条件

时间:2016-11-23 16:09:11

标签: entity-framework-6

我有两个不同的DbSet。现在我想查询这两个DbSets:

Cars.Where(a => a.Attributes.Color.Name = "Red");
Horses.Where(a => a.Saddle.Attributes.Color.Name = "Black");

是否可以在方法中外包Attributes.Color.Name部分而不会获得“不支持的异常”?像这样:

Cars.Where(a => Reuse.CheckColor(a, "Red"));
Horses.Where(a => Reuse.CheckColor(a.Saddle, "Red"));

1 个答案:

答案 0 :(得分:0)

where谓词只是一个lambda表达式(以表达式树的形式),您应该能够将其作为局部变量引入,如下所示:

Expression<Func<MyAttributesClass, bool>> predicate = attribute => attribute.Color.Name == "Red";