通过 OData/WCF 数据服务对底层 POCO 数据进行 CRUD 操作

发布于 2025-01-03 02:34:33 字数 390 浏览 3 评论 0原文

我正在尝试用 C#2010 编写一个 OData 服务,该服务通过 JSON 向 jQuery Web 客户端公开一些 POCO,但也允许更新底层数据。我发现了许多通过 OData 的只读 POCO 数据的示例,以及许多通过实体框架和 OData 的可更新数据的示例。

我的问题是数据位于专有数据库中,因此需要一个业务逻辑层来处理数据库更新,但我不知道这在 OData/WCF 数据服务模型中适合什么。我使用 IQueryable 列表填充 POCO 实体并使用 SetEntitySetAccessRule 公开它们,但如何调用业务逻辑/数据模型层中的方法将数据保存到数据库?

我应该使用 SetServiceOperationAccessRule 来公开服务方法吗?如果是这样,有人能给我指一个简单的例子吗?

谢谢

I’m trying to write an OData service in C#2010 that exposes some POCO to a jQuery web client via JSON, but also allows updates to the underlying data. I’ve found lots of examples of read-only POCO data via OData and lots of examples of updatable data via Entity Framework and OData.

My problem is that the data is in a proprietary database so there needs to be a business logic layer to handle the DB updates and I don’t see where this fits in the OData/WCF Data Services model. I’m populating the POCO entities using IQueryable lists and exposing them using SetEntitySetAccessRule, but how do I call a method in the business logic/data model layer to persists data to the DB?

Should I be using SetServiceOperationAccessRule to expose service methods? If so, could anyone point me in the direction of a simple example please?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

囚你心 2025-01-10 02:34:33

我的建议是自定义 WCF 数据服务提供程序,以便您可以自定义 IDataServiceUpdateProvider 的实现。 http://blogs.msdn.com/b/alexj/archive/2010/01/07/data-service-providers-getting-started.aspx

My suggestion would be a custom WCF Data services provider, so that you can have a custom implementation of IDataServiceUpdateProvider. There is a good blog series at http://blogs.msdn.com/b/alexj/archive/2010/01/07/data-service-providers-getting-started.aspx

丑疤怪 2025-01-10 02:34:33

Rich关于实现IUpdatable/IDataServiceUpdateProvider的建议是正确的。这就是支持更新操作的方式(EF 提供程序实现了此收件箱,反射提供程序则不然,因此您必须自己执行此操作)。
即使使用反射提供程序,您也可以实现 IUpdatable。只需让您的上下文类(作为 T 传递给 DataService 的类)实现 IUpdatable 接口即可。

Rich's suggestion to implement IUpdatable/IDataServiceUpdateProvider is correct. That's the way to support Update operations (the EF provider implements this in-box, the reflection provider doesn't so you have to do that yourself).
You can implement IUpdatable even when using reflection provider. Just make your context class (the one you pass in as T to DataService) implement the IUpdatable interface.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文