在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);
但是,同样的错误…
我的实体和数据上下文在一个单独的程序集中。这有关系吗?
如何正确指定集合?
它们在不同的程序集中并不重要。真正重要的是实体集和服务操作之间的区别。如果你有一个名为MyClasses的实体集(在EF中,这通常是"表"的名称,并作为上下文的属性公开),那么你需要使用config。SetEntitySetAccessRule方法。如果你有一个服务操作(这将是派生自DataService的类上的一个方法),那么你需要使用config.SetServiceOperationAccessRule.
尝试:
config.SetServiceOperationAccessRule("MyNamespace.MyClass, MyAssemblyName",
ServiceOperationRights.AllRead);
其中MyAssemblyName
为定义MyClass
的程序集名称。
有时实体模型生成带有(s)的实体,例如,产品表是用"PRODUCTs"名称创建的,或者product没有" s"