Tag: linq to entities

Linq to Entities中的动态where子句(OR)

在这里的post中,我学习了如何使用Linq的延迟执行来构建动态查询。 但查询实际上是使用WHERE条件的AND连接。 如何使用OR逻辑实现相同的查询? 由于Flags枚举,查询应搜索Username , WindowsUsername或两者 : public User GetUser(IdentifierType type, string identifier) { using (var context = contextFactory.Invoke()) { var query = from u in context.Users select u; if (type.HasFlag(IdentifierType.Username)) query = query.Where(u => u.Username == identifier); if (type.HasFlag(IdentifierType.Windows)) query = query.Where(u => u.WindowsUsername == identifier); return query.FirstOrDefault(); } }