Службы данных WCF без использования Entity Framework

Я хочу предоставить устаревший код .net через WCF Data Services. Но нигде не используя Entity Framework. В основном я в настоящее время заполняю все свои модели из db каждые X часов и выгружаю эти модели в кеш. Текущие веб-сервисы извлекают всю информацию из этого кеша. Теперь мне нужно преобразовать все это в службы данных WCF, в первую очередь для поддержки протокола OData.

Каков самый простой и быстрый выход (опять же, нет фреймворка сущностей)

Ниже приведен пример того, как в настоящее время выглядит моя модель:

public class Country
{
    public string CountryCode {get; set;}
    public string CountryName {get; set;}
    public List<State> ListOfStates {get; set;}
}

public class State
{
    public string StateCode {get; set;}
    public string StateName {get; set;}
}

Заранее спасибо.


person Raj    schedule 15.11.2011    source источник


Ответы (3)


Вам нужно использовать поставщик отражения вместо поставщика Entity framework - класс пользовательского контекста предоставляется в службе данных WCF. Просто имейте в виду, что поставщик отражения по умолчанию предоставляет данные только для чтения. Если вам необходимо обновить данные через службу OData, вам также потребуется реализовать IUpdateble в вашем классе контекста.

person Ladislav Mrnka    schedule 15.11.2011

Это не черная магия, а немного работы.

См. Дополнительные темы WCF Data Services статья, в которой показано, как можно использовать, например Дозвуковой для вашего ORM.

В основном, включаются следующие шаги:

  • вам нужно предоставить коллекции IQueryable<T> для всех ваших классов - вы можете сделать это, имея какой-то класс DataModel или DataContext, который содержит все эти коллекции

Если вы хотите иметь возможность вставлять и обновлять данные, вам также необходимо:

  • реализовать интерфейс IUpdatable в вашем «контексте данных», чтобы включить отслеживание изменений и обработку операций CUD.
person marc_s    schedule 15.11.2011

Я не хочу рекламировать себя на самом деле, но ваша проблема - это та же ситуация, что и у нас на работе. Мы взяли на себя исходный набор инструментов, разработанный Джонатаном Картером, для сопоставления WCF DataServices с тем, чем вы хотите их видеть.

Попробуйте взглянуть на http://wcfdstoolkit.codeplex.com/ и посмотрите, решит ли это вашу проблему. Документация доступна по ссылкам на блог Джонатана о том, как настроить и использовать инструментарий. Но я рекомендую скачать ветку сентябрьского релиза, чтобы убедиться, что в ней есть все исправления ошибок, которые я уже исправил.

person codingbunny    schedule 15.11.2011
comment
Это хорошо. Ответ актуален и вы четко раскрываете свою принадлежность. - person Tim Post♦; 15.11.2011
comment
Спасибо друг. На данный момент я остановился на провайдере отражения. - person Raj; 17.11.2011