Tag: where clause

在Entity Framework的where子句中使用List

我试图通过一对多表检索文档ID。 我想在where子句中使用List来查找与列表中的每个元素相关联的所有id。 List docIds = (from d in doc where _tags.Contains(d.Tags) select d.id).ToList(); 我知道包含的内容必须不正确,但我无法解决。 如果我尝试foreach,我无法弄清楚如何检查文档是否包含所有标签。

“Where”子句中的动态表达式 – Linq to SQL

我是LINQ的新手,所以我希望这不是一个愚蠢的问题: 我在数据网格中有一个包含大量内容的表格,我希望用户能够通过使用网格上方的一些combobox来过滤网格[如搜索栏] 我创建了一个方法,它接受combobox中的文本,并将其放在“Where”子句中: public void find() { string disName; string statusName; disName = RMcmbDis.Text; //This Get the first string to filter statusName = RMcmbStatus.Text; // this get the second string to filter //在这里,我收集了我需要的所有数据 var allCNT = from x in cntDB.releases join dis in cntDB.disciplines on x.discipline equals dis.discipline_id join btch in cntDB.batches on x.batch_num equals […]

动态LINQ多个子句

仍然真的在与此斗争,似乎是围成一圈。 我有以下代码让我疯了。 它应填充要在自动填充文本框中使用的项目列表: public string[] GetAutoComplete(string prefixText, int count) { string memberid = HttpContext.Current.Session[“MemberID”].ToString(); string locationid = HttpContext.Current.Session[“LocationID”].ToString(); string inhouse = HttpContext.Current.Session[“Inhouse”].ToString(); string supplier = HttpContext.Current.Session[“Supplier”].ToString(); string groupw = HttpContext.Current.Session[“Group”].ToString(); string external = HttpContext.Current.Session[“External”].ToString(); MyEnts autocomplete = new MyEnts(); var r = from p in autocomplete.tblAutoCompletes where p.MemberId == memberid && p.LocationId == locationid && […]

构建动态where子句,Linq To Sql

我首先使用EF Code 4.2,当where子句需要动态构建时,你建议采用什么样的解决方案? 然而,包含function非常需要: var results = db.Set.Where(“dynamic conditions”).Include(“….”); 上面的动态条件需要查找到另一个表来过滤记录:如果我想在Linq表达式中编写它,它将类似于: var result = db.Set().Where(c=>c.AccountId == _Id_param || db.Set().Any(a=>a.FkFieldId == c.AccountId && a.ParentId == _Id_param)).Include(“Quotes”); 我基本上需要上面表达式的动态linq,因为对于不同类型的Where子句字段更改(Contact只是一个示例),例如在一个Model中,FK字段可能是“AccountId”,而在另一个Model中,它需要是“AccountFKId” ”。 所以Where子句必须是动态的!

当没有匹配时LINQ结果?

当没有匹配时,LINQ函数究竟返回了什么? 以Where方法为例,例如: var numbers = Enumerable.Range(1, 10); var results = numbers.Where(n => n == 50); 在这一点上会有什么结果?

LINQ WHERE与OR

我使用LINQ创建我的where子句,如下所示: var query = from x in context.Xs select x; if (y == …) { query = query.Where(x => xY == 1); } 我有很多这些“if …. where”的陈述。 我遇到的问题是,所有这些都加入了使用AND的子句,但我需要所有where子句使用OR。 有没有一种简单的方法将此代码移植到OR代码中? 或者甚至用OR做出最简单的方法是什么? 谢谢。

在Framework 3.5中Linq-To-Sql动态Where子句是否可能?

更新:现在正在工作 我终于完成了它。 下面的答案中详述了一个工作示例(我将在2天内进行标记)。 以下所有内容都是原始问题的一部分 在过去的3天里,我一直在尝试使用来自此处和其他来源的 问题的代码示例在DBML DataContext上构建一个dynamic-where子句…… 没有一个有效 ! 由于以下原因,我开始怀疑在Framework 3.5下是否甚至可能使用它: Predicate Builder在其网站上注明了Framework 4.0。 这里的一些答案谈论4.0中的一个等效的Invoke版本(所以我在这里有一些希望)。 ……我可以继续,但你明白了。 我真的很茫然,似乎在“抓住弦乐”……我需要一些关于如何处理这个问题的合理建议。 原始版本取得了一些成功,但仅限于: 数据出现的唯一时间我得到了“成功”(所有6178行),但没有应用WHERE CLAUSE 。 这可以通过在dataContext.GetCommand(query).CommandText找到的SQL 没有应用任何WHERE CLAUSE dataContext.GetCommand(query).CommandText 。 其他版本#1失败: 并生成此错误:“方法”System.Object DynamicInvoke(System.Object [])’没有受支持的SQL转换。“ // VERSION 1: public static class PredicateBuilder { public static Expression<Func> True() { return f => true; } public static Expression<Func> False() { return f […]

LINQ是否可以动态添加where子句

我想用不同的密钥搜索我的数据库。 根据输入,10键可能有1个键。 有没有办法动态地向我的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 }

如何在Linq where子句中指定动态字段名称?

如果您创建一个Filter对象,其中包含Linq的条件,通常在where子句中,如下所示: var myFilterObject = FilterFactory.GetBlank(); myFilterObject.AddCondition(“Salary”, “lessThan”, “40000”); var myResult = myRepository.GetEmployees(myFilterObject); 如何在不使用大案例声明的情况下将Linq字段与字段名称匹配? return from e in db.Employee where e.Salary < 40000 select new IList { Name= e.name, Salary= e.Salary }; 我假设您需要将一个对象发送到指定过滤的存储库,以便您只提取所需的记录。 我假设Linq没有预编译(除非您创建自定义委托和函数),因此您应该能够动态指定要筛选的字段。 如果你可以像某些类型的Expando对象那样做e [“Salary”]这样的话会很好。

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(); } }