下面的代码搜索与关键字匹配s
或在与关键字匹配的类别下的产品s
。
它工作但很乏味,我想知道是否有更短的方法可以做到这一点?
var products = context.Products.Where(x =>
x.Name.Contains(s) ||
x.Products_Categories.Any(pc =>
pc.Category.Name.Contains(s) ||
(pc.Category.Category1 != null && pc.Category.Category1.Name.Contains(s)) ||
(pc.Category.Category1 != null && pc.Category.Category1.Category1 != null && pc.Category.Category1.Category1.Name.Contains(s) ||
(pc.Category.Category1 != null && pc.Category.Category1.Category1 != null pc.Category.Category1.Category1.Category1 != null && &&pc.Category.Category1.Category1.Category1.Name.Contains(s))
);
如果不明显:
Products_Categories
是多对多的关系,aProduct
可以是一个或多个Category
。
Category1
是 的父类别Category
。
请注意,它已链接到数据库,因此我无法使用IsUnderCategory()
.
我目前不需要 Expression,因为此代码只使用一次。