Entity Framework & Webservice - PullRequest
       5

Entity Framework & Webservice

1 голос
/ 11 ноября 2010

Мне нужна помощь здесь.

У меня есть решение с 2 проектами. Первый проект включает в себя веб-сервисы, которые предлагают некоторые методы, такие как GetAllCustomers, GetCustomerByGUID и т. Д. Он также включает в себя файл edmx, поэтому эти методы «Get» выдают объекты-сущности.

Второй проект - на данный момент - консольное приложение для тестирования всех этих методов. Я получаю свои объекты через веб-сервис, все хорошо, но ..

Вот моя проблема:

Эти объекты пропускают каждое свойство навигации. У моего объекта сущности Customer есть некоторые из них. В проекте веб-сервиса есть свойства навигации.

Еще одна странная вещь: Если я создаю экземпляр EF DataContext в консоли, я не могу вызвать метод SaveChanges. Это просто не там. Я знаю, что у меня не должно быть объекта текста данных в этом слое, но для тестирования я наткнулся на это.

Кто-нибудь знает об этом?

1 Ответ

2 голосов
/ 11 ноября 2010

Вам будет трудно заставить это работать так, как вы его спроектировали. Помните, что как только объект будет сериализован и отправлен по сети, вы потеряете всю информацию, связанную с DataContext.

Кроме того, если вы специально не включили ссылку на сборку в Модели Entity Framework и решили повторно использовать эти типы, то типы, с которыми вы имеете дело, являются только репрезентативными клонами реальных моделей в ваших .edmx.

Свойства навигации имеют смысл только тогда, когда сущность присоединена к DataContext, поскольку именно она обрабатывает всю магию вызова базы данных и гидратации запрашиваемой сущности. По сути, вы получаете POCO от своего веб-сервиса, но вы пытаетесь использовать его так, как если бы он все еще был привязан к своему контексту.

То, что вы пытаетесь создать, - это приложение N-уровня, поэтому я бы посоветовал прочитать , как это сделать с помощью Entity Framework .

...