【发布时间】:2012-12-28 12:10:58
【问题描述】:
我想用不同的键搜索我的数据库。根据输入,可能有 1 个键到 10 个键。有没有办法在我的 Linq 查询中动态添加 OR/AND 子句?
keys[k] // I have my keys in this array
var feedList = (from feed in ctx.Feed
where feed.content.contains(keys[0])
&& feed.content.contains(keys[1])
&& ... // continues with the keys.length
select new {
FeedId = feed.DuyuruId,
FeedTitle = feed.FeedTitle,
FeedContent = feed.FeedContents,
FeedAuthor = user.UserName + " " +User.UserSurname
}
【问题讨论】:
-
我只是补了10个键,应该没有什么限制。
-
@SomeMiscGuy 共享的链接是您所需要的。我已经创建了整个 linq 查询,它就像魅力一样工作。它与现有的
IEnumerable和IQueryable扩展很好地融合在一起。 -
动态 LINQ 可能是一个有用的解决方案,但在此示例中是不必要的。如果过度使用 LINQ 会产生大量开销,因为它依赖于幕后的反射。
标签: c# linq entity-framework where-clause