我正在尝试在C#2010中编写一个OData服务,它通过JSON将一些POCO暴露给jQuery Web客户端,但也允许更新底层数据。我通过OData找到了很多只读POCO数据的例子,以及通过Entity Framework和OData的大量可更新数据的例子。
我的问题是数据是在专有数据库中,因此需要有一个业务逻辑层来处理数据库更新,我不知道这适合OData / WCF数据服务模型。我正在使用IQueryable列表填充POCO实体并使用SetEntitySetAccessRule公开它们,但是如何调用业务逻辑/数据模型层中的方法来将数据保存到数据库?
我应该使用SetServiceOperationAccessRule来公开服务方法吗?如果是这样,有人能指出我一个简单的例子吗?
由于
答案 0 :(得分:1)
我的建议是自定义WCF数据服务提供程序,以便您可以拥有IDataServiceUpdateProvider的自定义实现。在http://blogs.msdn.com/b/alexj/archive/2010/01/07/data-service-providers-getting-started.aspx
上有一个很好的博客系列答案 1 :(得分:0)
Rich建议实现IUpdatable / IDataServiceUpdateProvider是正确的。这是支持更新操作的方式(EF提供程序实现了此收件箱,反射提供程序不是这样,您必须自己执行此操作)。 即使使用反射提供程序,您也可以实现IUpdatable。只需将您的上下文类(您作为T传递给DataService的那个)实现IUpdatable接口。