问题标签 [service-operations]

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 投票
2 回答
1200 浏览

linq - 如何在 ADO.Net 数据服务的服务操作中使用 ."Include"

我正在使用 ADO.Net 数据服务并有一个服务操作,最终将一些 linq 的结果返回到实体语句。作为这些 Linq 语句的一部分,有一个 .Include("NavProp") 来包含一个子对象。运行此服务操作时,它似乎不会返回扩展的包含。有谁知道这是为什么或如何解决?是否可以在对服务操作的调用中添加关键字来扩展该子对象?(我试过 $expand=subObject 但这似乎不起作用 - 错误的请求)。

我想结束: 1.) 服务操作中的 linq 语句的语法,它也返回 .Include (我很确定这是不可能的)

或者

2.) 服务操作请求扩展子对象的语法

0 投票
1 回答
1306 浏览

linq - 从 .NET 客户端使用 ADO.NET 数据服务的服务操作

我正在尝试构建一个包含大量实体和一些服务操作的 ADO.NET 数据服务。一方面,我创建了一个 ASP.NET Web 应用程序,其中包含一个 ADO.NET 实体数据模型和一个 ADO.NET 数据服务。另一方面,我创建了第二个 ASP.NET Web 应用程序,它具有对数据服务的服务引用。

实体进展顺利,我可以使用 LINQ 检索我想要的数据:

这行得通。但是,通过服务操作检索信息完全让我无法理解。数据服务端代码:

当我将服务引用添加到我的客户端项目时,Visual Studio 没有接受任何服务操作。我知道我可以通过构造的 URI 和 DataServiceContext 对象或 TestEntities 对象(在本例中)的 BeginExecute 方法或类似的方法来访问它们,但这不是我想要的。

我想要的是使用 LINQ 来遍历服务操作的返回数据。这可能吗?应该是吧?

0 投票
1 回答
763 浏览

wcf - WCF 服务操作不会将数据公开为可查询

我有以下形式的服务操作:

有访问规则

当我通过 Web 浏览器访问此服务操作时,它会公开数据,但不会在提要和条目(AtomPub 格式)中公开数据,它也不允许我使用 $top、$orderby 等基本查询选项,抱怨这些“无法应用”到请求的资源”。我已经满足了http://msdn.microsoft.com/en-us/library/cc668788.aspx中指定的所有要求,但没有成功。任何帮助将不胜感激。谢谢。

0 投票
1 回答
5456 浏览

c# - 无法从 WCF 数据服务返回自定义类

我正在尝试从我的 WCF 数据服务返回一个自定义类。我的自定义课程是:

我的数据服务如下所示:

但是,当我运行该服务时,它给了我一个错误:

相同的查询在 LINQPad 中运行得非常好。

0 投票
3 回答
5057 浏览

c# - ODATA 从 C# ASP.NET 4.0 使用服务操作

我正在通过 C# ASP.NET 应用程序连接到 ODATA 服务,该应用程序具有以下服务操作:

我可以在浏览器中毫无问题地使用它,例如

我了解如何使用 LINQ to Entities 来使用 ODATA 服务,但无法找到关于如何在 C# 中使用上述服务操作的体面解释。我在我的 Visual Studio 解决方案中对该服务进行了 Web 引用。

到目前为止,对于我通常使用的数据,我有这样的东西:

任何指针?

0 投票
1 回答
3696 浏览

.net - 如何在客户端 .NET 应用程序中使用 WCF 数据服务操作?

好的,我是数据服务和 LINQ 的新手,迫切需要一些指导。在短短几天内,我遇到了许多意想不到的障碍,现在我被困在了一个障碍上。我希望这些只是学习新工具的典型挫折。

我有一个 WCF 数据服务,用于从 Gps 坐标的 Sql Server 数据库表中提供数据。特别是我有一个服务操作方法,它允许您指定小数精度和纬度/经度范围,以生成更通用的数据表示。

在网络浏览器中,它似乎按预期工作。但是,当我尝试从客户端应用程序调用操作时,返回给客户端的列表与服务生成的列表不同。

我将使用我的代码片段来解释细节:

数据服务运营:

如果我在从客户端应用程序调用时调试上述方法(在 Visual Studio 的虚拟服务器上运行),gpsList 似乎在返回客户端之前包含正确的数据。使用我的测试参数,我得到一个包含 200 个不同 Gps 对象的列表,这些对象的值被四舍五入到我指定的小数位。

但是,一旦结果返回到我的客户端应用程序中的调用方法,我有一个 200 Gps 对象的列表,但它们都是相同的值。具体来说,重复值是我预期结果集中的最后一个值。我通过在 Web 浏览器中调用此操作并查看结果来确认这一点。

客户端方法:

我尝试删除“Execute()”行的“ToList()”部分,但是当我尝试在调试器中查看结果集时,它显示一个异常,内容为“此 IEnumerable 仅支持单个枚举。 "

据我所知,我的客户端代码首先是可疑的。毕竟,所有其他测试都表明我的数据服务操作正在产生预期的结果。

我需要做一些不同的事情来从数据服务中获取 IEnumerable 对象列表吗?

我知道有一个 CreateQuery() 选项,但我读过 Execute() 是这种情况下更合适的路线。

0 投票
1 回答
2033 浏览

c# - 从 Linqpad 调用 OData 服务操作

有谁知道它是否可能,如果可能,通过 linqpad 调用服务操作的语法是什么?

另外,当我使用 linqpad-how 调用它时,我可以使用命名参数吗?那将是很棒的 b/c 我在服务操作中有很多参数,我不想指定每个参数。

谢谢!

0 投票
0 回答
176 浏览

wcf-data-services - 是否可以在 CurrentDataSource 上设置 MergeOptions?

我在实体模型中公开了一些数据库视图,因为使用标准 OData 查询语法无法实现复杂的查询。我使用 WCF 数据服务将这些实体公开给第 3 方应用程序。基本上,有一些流程会改变我在 EF 层中的实体。我意识到表示数据库视图的实体不包含最实际的数据,因为它使用的是 EF 缓存并且没有从数据库加载数据。表示数据库表的实体始终是最新的。为了确保表示数据库视图的实体包含最实际的数据,AFAIK MergeOptions 必须设置为 NoTracking,然后 EF 在数据库中执行查询并忘记缓存的值。

现在我的问题。是否可以将服务操作中可用的 CurrentDataSource 与 MergeOptions 一起使用以强制 EF 忘记缓存的实体并每次在数据库中执行查询?或者是否有任何其他可能性来定义 EF 查询不应该使用缓存的实体值,而是执行 RAW SQL?

0 投票
1 回答
73 浏览

entity-framework - 是否可以在返回 IQueryable 的 ServiceOperation 中操作某些实体

我有一个 ServiceOperation 来查询某个用户在某个时间可用的项目。简而言之,这种方法可以:

假设这会返回项目 {A, B, C, D}。第二个查询过滤掉调用用户可以访问的那些项目中的哪些。

这个 mite 产生 {A, C } 并被返回。客户端的结果是:只显示客户端可以访问的项目列表。这可能很烦人,因为您不知道您是否在搜索时出错,或者该项目现在不可用。

我想做的是向客户端 {A, B, C, D} 显示所有可能的结果,但在这种情况下,标志 B 和 D 不可用。

我的实体已经有一个我可以使用的属性 isReadOnly。

我可以编写一个查询来过滤掉,而且还可以将任何剩余的结果标记为只读?理想的结果是 {A, B.isREadOnly=true, C, D.isReadOnly=true}

或者我是否达到了可行的极限,我是否必须编写一个传统的 WCF Web 方法,创建一个单独的类,返回一个结果列表?

PS:这个“isReadOnly”属性只用于这个,我不介意它在数据库中被改变

感谢任何指针

安德烈亚斯

0 投票
1 回答
303 浏览

asp.net-mvc - 如何只允许来自 WCF 数据服务 ServiceOperation 的访问

我将 WCF 与我的 ASP.NET MVC 应用程序一起使用,我的数据服务从我的 (EF 4.1) .mdf 文件中获取数据。但是我想通过身份验证显示一些字段,例如:

现在,当用户访问 httx://localhost/MyService.svc/Exercies 时,尽管没有给出用户名并通过,但他们可以获得所有内容。
我的临时解决方案是将 GetAllExercies 重命名Exercies我不确定是否有更好的方法......