EntityFramework WCF выпуск - PullRequest
       7

EntityFramework WCF выпуск

0 голосов
/ 25 октября 2009

Сейчас я делаю несколько тестов с участием entityFramework и WCF. Как я понимаю, сгенерированные объекты EntityObject являются объектами DataContracts, поэтому их можно сериализовать для клиента.

В моем примере у меня есть сущность "Страна", у которой в качестве свойства 1 "Валюта", когда я получаю Страну и пытаюсь отправить ее клиенту, возникает исключение, говорящее, что данные не могут быть записаны.

Но дело в том, что если я получаю валюту (в которой есть коллекция стран) и не загружаю ее страны, она работает. Клиент получает все сущности.

Итак, как итог: - У меня есть объект с другим объектом в качестве свойства, и я не могу быть сериализован. - У меня есть другой объект с пустым списком свойств, и он успешно сериализован.

Есть идеи, как заставить это работать?

1 Ответ

0 голосов
/ 25 октября 2009

Entity Framework по умолчанию не загружает автоматически связанные объекты, например если вы загружаете свою сущность "Страна" по умолчанию, и если вы ничего не делаете, связанная с ней "Валюта" не будет загружена.

Вам нужно либо сделать .Include("Currency") в своем запросе EF, либо загрузить соответствующее свойство Currency вручную. Это отношения 1: 1, верно? В этом случае ваша сущность Country, скорее всего, будет содержать элемент с именем CurrencyReference, и вы сможете проверить, загружен он или нет, а если нет, вы можете вручную загрузить связанную сущность:

if(!myCountry.CurrencyReference.IsLoaded)
{
   myCountry.CurrencyReference.Load();
}

Когда вы делаете это, а затем сериализуете объект, который будет отправлен через WCF - это работает сейчас?

Марк

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