在WCF数据服务,我如何使用SetServiceOperationAccessRule与远程程序集

本文关键字:SetServiceOperationAccessRule 程序集 何使用 数据 WCF 服务 | 更新日期: 2023-09-27 18:10:56

假设我的EF4实体是MyClass,集合名称是MyClasses。

它们都在MyNamespace命名空间中,所以:MyNamespace。MyClass

我有这样一行:

config.SetServiceOperationAccessRule("MyClasses", 
    ServiceOperationRights.AllRead);

然后我得到这个错误:

The given name 'MyClasses' was not found in the service operations. 
Parameter name: name

所以我试了这个:

config.SetServiceOperationAccessRule("MyNamespace.MyClass", 
    ServiceOperationRights.AllRead);

:

config.SetServiceOperationAccessRule("MyNamespace.MyClasses", 
    ServiceOperationRights.AllRead);

但是,同样的错误…

我的实体和数据上下文在一个单独的程序集中。这有关系吗?

如何正确指定集合?

在WCF数据服务,我如何使用SetServiceOperationAccessRule与远程程序集

它们在不同的程序集中并不重要。真正重要的是实体集和服务操作之间的区别。如果你有一个名为MyClasses的实体集(在EF中,这通常是"表"的名称,并作为上下文的属性公开),那么你需要使用config。SetEntitySetAccessRule方法。如果你有一个服务操作(这将是派生自DataService的类上的一个方法),那么你需要使用config.SetServiceOperationAccessRule.

尝试:

config.SetServiceOperationAccessRule("MyNamespace.MyClass, MyAssemblyName", 
    ServiceOperationRights.AllRead);

其中MyAssemblyName为定义MyClass的程序集名称。

有时实体模型生成带有(s)的实体,例如,产品表是用"PRODUCTs"名称创建的,或者product没有" s"

相关文章:
  • 没有找到相关文章