Введите пользовательское свойство в OData - PullRequest
3 голосов
/ 24 июня 2011

В моей базе данных User table у меня есть поле DataTime с именем DateDeleted - оно равно нулю, когда пользователь существует, и для него задано правильное значение, когда пользователь "удален".

Интересно, есть ли способ ввести свойство IsDeleted для сущности User, чтобы

http://odata/service.svc/Users(1)/IsDeleted

вернет true или false в зависимости от того, установлен DateDeleted или нет

Мои исследования в Google не дали никаких результатов, и я почти уверен, что это невозможно осуществить с помощью оддаты. Я прав?

Ответы [ 2 ]

1 голос
/ 28 июня 2011

Со встроенными провайдерами это невозможно на стороне WCF DS. Вы могли бы как-то сделать это на стороне EF (выставить это как свойство сущности EF), но я не уверен, возможно ли это. На стороне WCF DS вам придется реализовать пользовательский поставщик, чтобы сделать это. К сожалению, это может быть довольно много работы. Если вам интересно, посмотрите это для начала: http://blogs.msdn.com/b/alexj/archive/2010/01/07/data-service-providers-getting-started.aspx. То, на что ссылается Шон, это метод в пользовательском интерфейсе провайдера.

0 голосов
/ 27 июня 2011

Вы можете указать желаемое значение, реализовав метод DataServiceQueryProvider.GetPropertyValue.

Найдите ссылку здесь: http://msdn.microsoft.com/en-us/library/system.data.services.providers.idataservicequeryprovider.getpropertyvalue.aspx

Метод принимает два параметра, объект сущности (aПользовательский экземпляр) и свойство ресурса (в данном случае «IsDeleted»).Вы можете попытаться получить значение свойства «DataDeleted» из объекта-сущности и вернуть значение «IsDeleted», как хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...