问题标签 [iqueryable]

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.

0 投票
4 回答
27398 浏览

c# - Linq To Sql 从函数返回为 IQueryable

好的,我已经设法使以下工作

我继续创建了我自己的类(myObject),其中包含原语ticket_id、title、care_of_email 和filename。哪些是我在 linq 语句中返回的项目。

我将我的声明修改为

认为这会使泛型的类型安全,但我收到错误“无法将方法组'AsQueryable'转换为非委托类型'System.Linq.IQueryable'。你打算调用该方法吗?”

我想要做的甚至可能吗?

myObject 类是否需要实现 IEnumerable 或 IQueryable?

还是最好从 linq 结果集中构造对象 MyObject ,然后从函数中返回对象 MyObject

0 投票
2 回答
1260 浏览

c# - LINQ to SQL 表达式中的 DataContractSerializer?

我是 LINQ 表达式的新手,并试图让以下工作:

它显然不起作用,因为 LINQ 试图将整个表达式转换为 SQL。

你知道这样做的方法吗?

0 投票
2 回答
2338 浏览

.net - Linq - 当子记录查询由不同的函数收集时求和子字段值

我有订单 - 物品表。所以我想在某个网格上显示所有订单信息,包括像 total_items 这样的列

有一种预先的工作方式。像这样:

但这不是我想要的方式。我想使用 2 个功能:

功能一:

功能2。

对我来说,它看起来很简单。但在一线

结果是异常。

对此有一些解释吗?

谢谢。

0 投票
2 回答
2832 浏览

.net - 自定义 IQueryable

我正在尝试自定义应用程序的实体,以使它们具有引用加载它们的 DataContext 的属性。

我认为最好的方法是以某种方式创建一个实现 IQueryable 的类并在其 GetEnumerator 方法中设置实体 datacontext 属性。

我的问题是,如何在我的 IQueryable 实现中使用 Linq to SQL 使用的提供程序和表达式,这样我就不必自己实现它们了?

顺便说一句:对于我的场景,还有其他方法吗?

看看下面的代码:

更新

我自己找到了答案。这是显示我如何做到这一点的示例代码。

0 投票
2 回答
730 浏览

linq - 如何将由 IQueryable 对象创建的 Expression 的执行转移到 IEnumerable?

在我的代码中,我想让我的存储库 IQueryable。这样,选择的标准将是一个 linq 表达式树。

现在,如果我想在理论上模拟我的存储库,这很容易:只需实现我的存储库的接口(这也是一个 IQueryable 对象)。

我的模拟存储库实现将只是一个内存集合,但我的问题是:你知道一种简单的方法来实现我的模拟的 IQueryable 接口,将查询传输到我的内存集合(IEnumerable)吗?

感谢您的答复,

一些精度

我的存储库的客户端对象将以这种方式使用我的存储库:

var result = from entry in MyRepository where entry.Product == "SomeProduct" 选择条目;

ToList 或 AsEnumerable 的作用是执行查询并将结果作为 List 或 IEnumerable 返回。但是我必须在我的存储库上实现 IQueryable 接口,并使用 IQueryProvider 将调用中的表达式转换为 IEnumerable 对象。

解决方案

该解决方案的实现是将调用 IQueryable 委托给我使用 AsQueryable 的内存集合。

0 投票
3 回答
33397 浏览

linq - 将数据集转换为 IQueryable或 IEnumerable

由于还没有 Linq to DB2(来吧 IBM!),并且我想在我的代码中处理 IQueryables 或 IEnumerables,我将如何将 DataTable 转换为 IQueryable?还是一个 IEnumerable?

我有一个接口和一个与数据表中的列匹配的类...

DataTable.Rows 不支持 .AsQueryable,因为 MSFT 取消了它,所以我不知道该怎么做。

0 投票
2 回答
2000 浏览

c# - 如何将函数应用于 IQueryable 实例?

我已经开始尝试使用 LINQ 实现 IQueryable<T> 数据类型进行查询。例如,我制作了几个这样的函数(扩展方法不适用于特定的 IQueryable 实现,这只是一个临时细节):

然后我认为将函数应用于 IQueryable 对象中的每个元素会很有用,但我不太清楚如何构造正确的表达式。方法签名可能如下所示:

我应该如何完成这个方法体?

0 投票
3 回答
4962 浏览

sql - LINQ 中的 count VS select - 哪个更快?

我在IQueryable<T>整个应用程序中使用接口,并将数据库上的 SQL 执行推迟到像这样的方法.ToList()

我有时需要找到某些列表的计数 - 而无需使用正在计数的列表中的数据。根据我的 SQL 经验,我知道 SQL COUNT() 对数据库的工作量远低于返回所有行的等效 SELECT 语句。

IQueryable<T>所以我的问题是:从'Count()方法返回计数比将 ' 渲染IQueryable<T>到列表并调用列表的方法在数据库上的工作会更少Count()吗?

我怀疑它会ToList()触发 SELECT sql,然后在单独的查询中计算行数。我希望Count()onIQueryable<T>只是为 sql COUNT() 查询呈现 sql。但我不确定。你知道吗?

0 投票
3 回答
2456 浏览

.net - Silverlight、EDM/LINQ 和 WCF Web 服务 - 如何将集合传递给 Silverlight

将答案(集合)传回 Silverlight 的正确方法是什么?

例如,如果我有一个位于 Northwind 示例数据库之上的服务应用程序,并且该服务有一个名为 GetEmployees() 的方法。传递回 Silverlight 的正确“东西”是什么?一个 IQueryable ?

然后考虑到 Silverlight 方面的 Async/Result 转换内容,我还应该转换什么?一个 IQueryable ?

更新:
是否允许远程客户端从服务中查看结构(实体)的 [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 声明?我不知道有像 Silverlight-friendly-WCF 类这样的东西,所以这不是我开始的。一旦我在解决方案中添加了该属性,没有它我将不再使用该服务。所以我无法测试我之前看到的内容。对AspNetCompatibilityRequirementsMode.Allowed的作用有什么想法吗?

更新 2:
查看对 Terry Donaghe 的评论。

0 投票
1 回答
3978 浏览

c# - C#,Linq2Sql:是否可以将两个可查询对象合并为一个?

我有一个可查询的地方,我使用了各种WhereWhereBetween语句将集合缩小到某个集合。现在我需要添加一种Where || WhereBetween. 换句话说,我不能像到目前为止那样将它们链接在一起,因为这将作为 And 起作用。那么,我该怎么做呢?

我看到两种可能性:

  1. 从我拥有的一个中创建两个可查询Where,一个使用,一个使用WhereBetween. 然后将它们连接起来。不知道这是否可能?另外,虽然不是在我的特定情况下,但您很可能会以重复结束...
  2. 以某种方式Where表达式和在 中创建的表达式WhereBetween与某种 Or 合并。

第一个,如前所述,我不确定是否可能。如果是这样,我不太确定这是一个好方法。

第二,我可以将其视为一种选择,但不能完全确定所有细节。以下是WhereBetween我的另一个问题的方法,我现在使用它并且效果很好:

我在想我可以将它的表达式构建部分提取到一种新方法中。或许是这样的:

然后我可以使用这个新方法来获取表达式而不是可查询的。所以,假设我有WhereBetween(ø => ø.Id, someRange)and 例如ø => ø.SomeValue == null。我怎样才能将这两者与 Or 结合起来?我正在查看方法中Expression.OrElse使用的WhereBetween方法,我认为这可能是我需要的,或者这可能是Expression.Or. 但是我对这个表达的东西很不稳定,所以我不确定在这里选择什么,或者即使我在正确的轨道上:p

有人可以在这里给我一些指示吗?