В службах данных WCF как использовать SetServiceOperationAccessRule с удаленными сборками - PullRequest
0 голосов
/ 12 октября 2011

Давайте представим, что моя сущность 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);

Но, та же ошибка ...

Мои записи и контекст данных находятся в отдельной сборке. Это имеет значение?

Как правильно указать набор?

Ответы [ 3 ]

0 голосов
/ 12 октября 2011

Не должно иметь значения, что они находятся в другой сборке.Важна разница между наборами сущностей и операциями обслуживания.Если у вас есть набор сущностей (с EF это обычно имя таблицы и он отображается как свойство в контексте), называемый MyClasses, тогда вам нужно использовать метод config.SetEntitySetAccessRule.Если у вас есть операция службы (это будет метод в классе, производном от DataService), вам необходимо использовать config.SetServiceOperationAccessRule.

0 голосов
/ 19 февраля 2013

Иногда модель сущностей генерирует сущности с помощью (-ями), например, таблица товаров создается с именем «PRODUCTs» или PRODUCT без «s»

0 голосов
/ 12 октября 2011

Попробуйте:

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

, где MyAssemblyName - это имя сборки, где определено MyClass.

...