问题标签 [wcf-data-services]
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# - ADO.NET 数据服务和自定义数据源
我有一个业务逻辑层 (BLL) 和一个数据访问层 (DAL),过去用于 WinForms、WebForms 和 ASP.NET MVC 项目。这些对象实现了各种接口。现在我想处理 ADO.NET 数据服务。
我正在尝试类似以下的简单操作,但它没有提供我的服务。我完全错过了什么吗?我有什么添加到我的 BLL 中而我没有?我是否太天真以至于认为它会“起作用”,但 Astoria 相当复杂?
asp.net-mvc - 模拟 DataServiceQuery
如何模拟 DataServiceQuery 以进行单元测试?
详细信息如下:想象一个 ASP.NET MVC 应用程序,其中控制器与封装模型存储的 ADO.NET DataService 通信(例如,我们将读取客户列表)。通过对服务的引用,我们得到一个继承自 DataServiceContext 的生成类:
控制器可以是:
如您所见,我使用了一个接受 IMyDataContext 实例的构造函数,以便我们可以在单元测试中使用模拟:
MockContext和MyDataContext需要实现相同的接口IMyDataContext:
但是,当我们尝试实现 MockContext 类时,由于 DataServiceQuery 的性质,我们遇到了问题(需要明确的是,我们在 IMyDataContext 接口中使用它只是因为这是我们在自动生成的 MyDataContext 中找到的数据类型我们开始的课程)。如果我们尝试写:
在Customers getter 中,我们希望实例化一个DataServiceQuery 实例,用CustomersToReturn 中的Customers 填充它,然后返回它。我遇到的问题:
1~ DataServiceQuery 没有公共构造函数;要实例化一个,您应该在 DataServiceContext 上调用 CreateQuery;见MSDN
2~如果我让 MockContext 也从 DataServiceContext 继承,并调用 CreateQuery 来获取要使用的 DataServiceQuery,则服务和查询必须绑定到有效的 URI,并且当我尝试迭代或访问查询中的对象时,它将尝试针对该 URI 执行。换句话说,如果我这样更改 MockContext :
然后,在单元测试中,我们在标记为 LINE A 的行上收到错误,因为http://www.contoso.com没有托管我们的服务。即使 LINE A 尝试获取模型中的元素数量,也会触发相同的错误。提前致谢。
wpf - 从 WPF 客户端访问 ADO.NET 数据服务,形成身份验证
StackOverflow 上有许多问题几乎直接触及了这个话题,但它们要么是针对其他技术,要么是参考过时的信息,要么不提供我能猜出的答案。所以请原谅几乎重复:)
我有一个工作的 ADO.NET 数据服务和一个 WPF 客户端。现在他们工作正常,我想为系统添加身份验证/安全性。到目前为止,我对这些步骤的理解是......
- 打开表单身份验证并在服务器上配置它(我有一个现有的 asp.net 会员服务数据库用于此应用程序的其他方面,所以这不是问题),以便服务 URL 需要它
- 在 WCF 中申请并接收表单身份验证“票证”作为登录例程的一部分
- 将该“票证”添加到 WPF 中 ADO.NET 服务调用的标头中
- 利润!
一切都很好 - 但是有没有人使用这些技术的现代版本对坚果汤代码示例有所了解?
谢谢!
wcf-data-services - ADO.NET 服务更新错误
我对 ADO.NET 服务有一个非常简单的练习:将 Product 列表放入列表框中,当列表框中的选择发生更改时,在两个文本框中显示 UnitPrice 和 UnitInStock。然后更改文本框中的数据并保存更改。
这是客户端的所有代码:
ADO.NET 服务很好,它的权限设置为:
当我点击保存按钮时,我收到错误消息:ex.Message = "处理此请求时发生错误。"
不知道为什么。请帮忙。
wcf - 是 WCF 服务 VS ADO.NET 数据服务吗?
我对 WCF 服务是什么只有模糊的概念,但由于 Asp.Net 程序员(对象数据层和数据访问层的编程人员)的大多数工作也需要您了解 WCF 服务,因此我可能还需要学习 WCF 服务. 但是还有 ADO.NET 数据服务
这两种技术是否竞争(也就是执行相同的任务)或至少在某些领域重叠?
如果他们竞争,你会建议学习两者中的哪一个?
其中一个是否仅用于非常特定的场景,而另一个则更经常地使用(我知道我在这里概括得太多了:))?
ajax - ajax网站什么时候用WCF,什么时候用ADO数据服务?
我真的很困惑何时使用 WCF 以及何时在我的网站 ajax 调用中使用 ADO 数据服务。
我总是让我的 javascript 代码调用一个网络服务来从服务器“ajax”获取数据。
但是,在同时读取 WCF 和 ADO 数据服务时,我不确定何时使用它们以及何时不使用它们?在我的情况下它们是否相互替换?还是可以并肩生活?
任何人都可以让我了解何时在 ajax 网站中使用 which 吗?
asp.net - 在实体框架中创建自定义属性
我有一个数据库,我想从中创建一个实体,然后生成 RESTful 输出。
我的目标是在其中一个表成为实体后为其添加一个属性。该属性的数据将是我通过对表中的几个不同字段进行的计算得出的数据。从那里,代码生成器将像往常一样创建 RESTful 输出。
我设法能够更新 SSDL、CSDL 和 edmx 文件的映射部分,同时使用 SampleEdmxCodeGenerator 作为自定义工具。当我用我的自定义属性填写了 edmx 文件中的所有部分时,svc 失败,因为(我假设)该属性在数据库中不存在。如果我将属性保留在 SSDL 之外,但将其放在客户端架构 (CSDL) 和映射部分中,我将无法构建我的项目。
我已经修改了部分类并添加到它,但问题是我需要在类的创建时间填充方法,而我还不能这样做。
我是否朝着正确的方向前进,或者这不可能?似乎我应该能够以最小的努力做到这一点,但我一直在碰壁。
silverlight - Silverlight 3 架构和实现 DataAnnotations - Adivce
我正在使用 Silverlight 3 和 ADO.NET 数据服务,其中包含自定义构建的模型(单独的项目)和 DAL(单独的项目))。在我的 Silverlight 项目中,我创建了一个 [Service Reference] 来引用我的 .svc 文件,该文件又指向我的模型。
这是我的问题:我想使用 DataAnnotations (System.ComponentModel.DataAnnotations) 的丰富功能,但我究竟将这些属性放在哪里?如果我使用这些注释通过模型进行装饰,我看不到它们在我的 [服务参考] 生成的代理代码中呈现。我只看到我的类及其成员,但没有 DataAnnotations (Reference.cs)。
我知道如果我手动更改 (Reference.cs) 文件并添加一些 DataAnnotations,这些更改会渗透到我的 Silverlight 客户端。我不认为我应该更新生成的代码,即带有 (Reference.cs) 的代理代码。所以,我的问题是,在我的分离项目(Web、SL、模型、DAL)的 Visual Studio 结构中,我应该抛出/扩展这个自定义数据源(模型)以利用 DataAnnotations 吗?
我想要这样的东西:
c# - 关于使用 ADO.Net 数据服务,我应该了解什么?(常问问题)
在过去的几个月里,我一直在使用ADO.Net Data Services (Astoria)进行学习,虽然我喜欢这项技术,但学习是一次真正的尝试。您需要有效使用它们的信息散布在 MSDN 文档、文章、博客文章、支持论坛,当然还有 StackOverflow 中。这个问题是我分享一些来之不易的发现的地方,以便其他人可以受益。我也希望其他人贡献他们的最佳实践和常见问题解答,并纠正我的误解!
为了全面披露,我一直在使用带有 Linq to SQL 的框架,只是为了让我的生活更加复杂,所以我希望我的答案中的细节也适用于实体框架。
首先是一些我发现必不可少的链接。然后,我会将主题特定位放在答案部分。
有用的链接
.net - ADO.NET DataService 中的 WriteReplace 和 WriteMerge 有什么区别?
我正在配置 ADO.NET 数据服务。
我已经阅读了EntitySetRights Enumeration的 MSDN 页面,但我无法确定 EntitySetRights.WriteMerge 和 EntitySetRights.WriteReplace 之间的区别
我在使用 Microsoft ADO.NET 数据服务中找到了以下解释
WriteMerge:在基于合并的更新的情况下,有效负载需要是一个实体,并且只需要包含正在修改的属性。如果不包含某个属性,则将保留服务器中当前存在的值。示例 14 显示了用于更新前面示例中插入的类别的有效负载。
WriteReplace:在基于替换的更新的情况下,有效负载需要是一个实体,并且应该包含该实体的所有属性(不包括导航属性)。如果不包含某个属性,则服务器上的值将重置为该属性的默认值。PUT 请求的这种行为映射到 AtomPub RFC 5023 中描述的行为。示例 13 显示了用于更新在前一个插入示例中插入的类别的有效负载。由于并非所有属性都包含在有效负载中,因此未指定的属性将由数据服务重置为其默认值。