问题标签 [objectquery]
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# - 存储库/IQueryable/查询对象
我正在构建一个存储库,我在很多地方都看到了两个不将 IQueryable 暴露在存储库之外的原因。
1) 首先是因为不同的 LINQ 提供程序可能表现不同,并且这种差异应该包含在存储库中。
2) 二是防止服务级别开发人员修改数据库查询,从而意外导致性能问题。
我想问题 2 只能通过将所有查询逻辑保留在存储库中并且不允许任何形式的外部查询构建来防止?但这对我来说似乎有点不切实际。
问题 1 似乎可以通过使用数据对象模式来解决。
例如public IEnumerable<T> FindBy(Query query)
我的问题是,为什么我不只是传递一个 lambda 表达式,因为它独立于提供程序,似乎会为我提供与查询对象相同的功能和相同级别的分离?
例如public IEnumerable<T> FindBy(Expression<Func<T,bool>> predicate)
有什么理由不这样做吗?它是否违反了某些规则?最佳实践?我应该知道什么?
sql - ef5 ObjectQuery“喜欢”
我将 EF5 用于 ObjectQuery,
但它不起作用,它总是返回所有结果。有任何想法吗?多谢!
c# - 使用 QueryBuilder 的父子过滤器
假设我有 3 个表:表 Employee、EmploymentHistory 和 Languages。一名员工可以有多种语言和工作经历。
员工
工作经历
语
如何使用 ObjectQuery QueryBuilder 应用过滤器?示例:我想过滤 devon 公司的员工。它应该是员工“AAA”。
注意:我使用 QueryBuilder 进行高级过滤。
此致,
布赖恩
c# - 对 DbContext 使用查询生成器方法
我想在我的下面使用“查询生成器方法” DbContext
:
但它无法解决Where
. 我在这里想念什么?
c# - ObjectQuery,在 Where 子句中传递时间
如何构造 ObjectQuery 的 Where 子句,我将在其中仅查询 DateTime 列的 Time 部分?我已经尝试了以下方法,但它不起作用。我在 Convert 上遇到无效异常。
另外,我使用 Oracle 作为数据库。所以我尝试to_char
而不是转换,但我仍然得到同样的错误。
谢谢。
c# - DbQuery 中 ObjectQuery.Parameters 的等价物是什么
我有使用 linq 语句获取查询的代码,使其成为 aDbQuery
而不是ObjectQuery
,我正在使用该查询通过 foreach 循环添加参数。但DbQuery
没有参数支持。我知道我可以手动添加它们。但是我的 SQL 语句中有 36 个不同的参数。所以我需要找到一种方法来添加参数。
那是我用于参数的代码。
我需要一种方法来做到这一点DbQuery
objectquery - JDBI 使用 @bind 查询引号内的变量
我想知道这是否/如何可能,如果是,我敢肯定这是一个我似乎无法弄清楚的简单修复
本质上,对于这个玩具示例,我试图选择一列包含 [any text]thingName[anyText] 的行。如上所述使用时,我认为引号会掩盖绑定变量,因此它实际上会查找 [any text] :thingName [anyText] 而不是我的绑定变量。
提前谢谢你,马德琳
wpf - 在对象查询包含的实体上使用 Where 子句(实体框架)
我使用实体框架作为 WPF 数据库前端的基础。
我的数据库结构适用于办公楼,对于这个问题,您需要了解的只是顶层实体称为市场(想想郊区或中央商务区)。市场有很多房产,房产有很多调查。
我想将返回的调查限制为仅最近的 10 次调查(调查每 6 个月进行一次)。
我可以看到自动生成的代码是如何构建查询的:
我想使用 where 子句过滤 OMRBuildingSurvey 实体的属性。我可以编写一个 where 子句来过滤市场(顶级实体)的 ID,如下所示:
但我想过滤 OMRBuildingSurveys 实体的属性,但我似乎找不到导航到它的方法。我努力了:
但我得到了错误:
如果有人能指出我正确的方向,我将不胜感激!
非常感谢,祝您有美好的一天!
wpf - 使用 Linq 方法通过 Where 子句导航多个实体框架实体
我正在尝试使用对象查询跨多个实体关系进行查询。
实体链基本上就是OMRMARKET(一对多)PROPERTIES(一对多)OMRBUILDINGSURVEYS(一对多)PERIODS。或者换句话说,一个市场有很多属性,属性有很多调查,调查有很多时期。
我想过滤以下对象查询:
在期间 ID(伪代码)上 OMRMarket.Properties.OMRBuildingSurveys.PeriodID > 50
然后我想我也许可以嵌套后续的 Where 函数,例如:
我得到了智能感知支持,可以帮助我建立该查询,但后来我得到了错误
'System.Collections.Generic.IEnumerable(Of OMR.OMRInterfaceCustomCode.OMRBuildingSurvey)' 类型的值无法转换为 'Boolean'
任何帮助将不胜感激。我知道这一定是可行的。首先十分感谢。
entity-framework - 为什么使用 EF 实现的存储库应该公开 IQueryable 而不是 ObjectQuery?
链接:
我的存储库总是返回 IQueryable。这样做的原因是 IQueryable 不依赖于 EF 而 ObjectQuery 是。因此,如果我希望我的其他层对持久性无知,我不想引入对 ObjectQuery 的依赖。
a)我认为存储库(使用 EF 实现)应该返回IQueryable
而不是返回的ObjectQuery
原因是因为其他 ORM 也使用返回的查询IQueryable
,并且通过让存储库返回,IQueryable
我们可以轻松地在 EF 和其他 ORM 之间切换,而无需更改 a 的公共接口存储库?
b) 除了 EF 和 NHibernate,还有其他 ORM 也有返回的查询IQueryable
吗?
谢谢