问题标签 [linqkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - LINQ 自引用表过滤器关系
我有 2 个表Categories
和类别作为可空外键Images
自引用ParentId
代码第一类
** 上下文**
问题是我如何构建一个 LINQ 语句以返回基于 Id 的类别与父类别的所有图像,不包括标记为的图像IsDeleted = true
是否可以在LINQ
或LinqKit
c# - 实体框架查询超时但 SQL 是即时的
我有几个表达式在 EF6 中运行 Count()。生成的 SQL 查询结束了一个有点复杂的查询,其中包含几个传入的参数。但是,如果我将 SQL 复制到 SSMS 中,它会在不到一秒的时间内运行。
在 EF 中,Linq 查询需要超过 30 秒,并且通常只是简单地引发连接超时异常。
查看活动监视器,我可以看到它似乎正在运行相同的查询数千次(如果不是数百万次)。
触发查询的代码由使用 LinqKit AsExpandable() 和 Invoke() 组合的几个表达式组成。
c# - 使用 LinqKit 将查询应用于单个复杂属性
编辑:在 LinqPad 的帮助下,我设法将我的代码减少到最小公分母。
我有一个返回复杂 LinqKit 谓词的方法。期望的结果是能够在我需要执行此查询时重用此方法。它在Where
针对这些实体的集合的子句中运行良好IQueryable
,但是当我将此实体作为对象的单个属性并想使用谓词进行查询时,我无法终生弄清楚如何使用此谓词该实体的其他属性。
我会给你一个简单的例子来说明我的意思。
这将正常工作:
...假设StructureAnalyses
是IQueryable
我的一个StructureAnalysis
来自 Entity Framework 的对象。
但是假设我想获取任务,使用相关的结构分析进行过滤。我怎么能做这样的事情?请记住,实际上,query
它是由可重用函数predicate
构建的,并且是在调用它的单独函数中构建的,因此我不能简单地合并两个查询。
它编译但当我尝试执行查询时失败:
...带有“参数 't' 未绑定在指定的 LINQ to Entities 查询表达式中。” ,或类似的。在此示例中,Tasks
是一个 IQueryable,它包含Task
我的数据库中的所有类型实体。
我也试过改变这一行:
...至:
这也可以编译但失败,“无法将'System.Linq.Expressions.FieldExpression'类型的对象转换为'System.Linq.Expressions.LambdaExpression'。” 这是可以理解的。
我也尝试过调用Expand
and query
,compiled
但没有效果,以及以下“解决方案”:
linq - LinqKit PredicateBuilder 添加到 linq 查询
我有一个 linq 查询,我想WHERE
为使用 LinqKit Predicate Builder 添加一些额外的可选条件。但是,我很难让额外的谓词起作用
这是我的初始查询:
如您所见,里面JOIN
有。然后,如果需要,我希望添加其他谓词:
但是,生成的 SQL 不变,查询返回相同的行数。
我想我可能不得不像这样进行扩展转换:
但这会导致运行时错误。
我认为问题在于我将谓词添加到已经不再是纯OrganisationProduct
对象的查询中,但是我想就如何在正确的位置插入谓词提出建议。
谢谢大家:-)
predicates - LinqKit 谓词
我试图弄清楚谓词是如何工作的。我有一段代码,其中始终提供一个参数,但最多可能有 5 个不同的参数。
如果我尝试这种方式
如果我这样写,它什么也不返回
它工作正常。如果我将第一个谓词(帐户)从 .Or 更改为 .And 它不起作用。
.Or 似乎总是在运行,但如果我输入 .Or 对于所有这些,返回的日期是不正确的,因为它需要是一个 .And
我试图弄清楚如何让它工作,因为会有一段时间所有参数都是可选的。而且我将无法使用 . 或者,无论添加多少参数,获得 .And 的秘诀是什么。
c# - 如何在连接语句中使用谓词
我试图让我的用户构建他们自己的查询。我发现这段代码似乎可以解决这个问题:
这些是我的模型类:
但我需要一种PredicateBuilder
在这样的连接语句中使用的方法:
linq - 如何使用带有 LINQ 的谓词查询 CRM 2011
我正在尝试使用 linqkit 进行谓词。尝试编译时获取以下代码。
错误 1: “System.Linq.IQueryable”不包含“Where”的定义和最佳扩展方法重载“System.Linq.Queryable.Where(System.Linq.IQueryable, System.Linq.Expressions.Expression>)”有一些无效的论点
错误 2参数 2:无法从 'System.Linq.Expressions.Expression>' 转换为 'System.Linq.Expressions.Expression>
请建议我需要做什么来修复它。
谢谢
c# - Linq 谓词查询结果不适用于进一步的 Linq Join
我正在使用谓词查询的结果在 Linq 查询中编写联接。但它抛出以下错误。但是,当我在 SQL 中运行类似的查询时,它会返回预期的结果。
注意:我最后删除了 ToList() 并且它不会抛出错误,但是当您尝试使用帐户对象时,它会再次抛出相同的错误。
错误
Microsoft.Xrm.Sdk.dll 中出现“System.NullReferenceException”类型的异常,但未在用户代码中处理。
附加信息:对象引用未设置为对象的实例。
c# - 如何检查谓词表达式是否已更改?
这是我的谓词表达式,在某些特定条件下,我将在其中附加表达式。
同样地
现在我的问题是,如果这个表达式没有通过这个条件,那么会有任何表达式吗?我怎么知道它是否不返回任何表达式。
只是我想做-
if(predicate==null)
或者if(predicate contains no expression)
c# - 如何在实体框架中参数化查询?
我是 EF 的新手。我有一张包含项目列表的表格。我在我的软件中找到了一个可以找到所有项目的查询。
这似乎很好,但我不知道如何参数化它。我需要这个,因为我正在实现一个搜索功能,试图重新使用来自 EF 的一些查询逻辑。
这需要一个元组列表。每个元组基本上都有一个属性和一个搜索词列表。
例如。元组(名字,{ Prasaanth,比尔};元组(姓氏,{尼拉坎丹,盖茨};
这意味着我需要编写一个选择查询,在其中搜索 FirstName 为 Prasaanth 或 Bill 的项目。如果列表只有一个术语。
例如。Tuple( Company , { Microsoft} ; 那么我只需要在查询中搜索一个 where 条件。
我总是可以在我做的地方写一个 if 条件:
但是我有太多的属性要搜索。
我知道这样做的 ADO.NET 方式:
我不知道如何在我的 EF 查询中做这样的事情。
1) EF 有没有办法让我对动态属性进行搜索?或使用 '"+attribute+"' 参数化?
2) 有没有更好的数据结构可以用来简化我的结构而不是使用List<Tuple<string, List<string>>
?
3) 建议我使用 3rd 方 LINQKit 或动态 linq,但我不确定如何将其集成到 EF 查询中。
如果其中大部分听起来像大学生代码,我深表歉意。如果需要任何其他详细信息,请告诉我。
问候, Prasaanth
更新:根据安德烈的回答工作方法。我的问题是,如果我的数据库中的任何特定条目说名称为空,这将不起作用。
任何方式我都可以修改表达式,以便包含方法:
prop, typeof (String).GetMethod("Contains"), new Expression[] { Expression.Constant(v)
如果属性 (prop) 的值为 null 是否有效?