У меня есть представление, которое возвращает данные, подобные следующим:WCF Rest/Entity Framework - Просмотр не Deserializing как ожидалось
1 | Абита | NULL | http://www.abita.com/
2 | Абита | Abbey Ale | http://abita.com/brews/abbey_ale.php
Я использую WCF REST, чтобы получить представление xml этого представления через объект рамки сущности. При просмотре возвращаемых данных в XML в браузере, первая строка показывает данные, как я ожидал:
<vw_Url z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
- <EntityKey z:Id="i2" xmlns="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" xmlns:a="http://schemas.datacontract.org/2004/07/System.Data">
<a:EntityContainerName>FierceBeersEntities</a:EntityContainerName>
- <a:EntityKeyValues>
- <a:EntityKeyMember>
<a:Key>Brewery</a:Key>
<a:Value i:type="b:string" xmlns:b="http://www.w3.org/2001/XMLSchema">Abita</a:Value>
</a:EntityKeyMember>
</a:EntityKeyValues>
<a:EntitySetName>vw_Url</a:EntitySetName>
</EntityKey>
<Beer i:nil="true" />
<Brewery>Abita</Brewery>
<RowId>1</RowId>
<Url>http://www.abita.com/</Url>
</vw_Url>
Однако вторая строка не отображается правильно десериализаций строки/объекта, так как он не содержит данные из второй строки.
<vw_Url z:Ref="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" />
Любая идея, почему это может быть?
ОБНОВЛЕНИЕ: Я отслеживал это из-за того, что был создан СОЮЗ в представлении. Строки объединены вместе из двух разных таблиц, и по какой-то причине EF обрабатывает вторую как ссылку на первую. Возможно, это ошибка EF? Любые идеи для обходного пути?
Похоже, что это может быть ошибка/ограничение EF в EF 1.0. http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/9293cf4d-deef-40b1-ab56-a0ee1e770dd9 Однако я использую EF 4.0, и это все еще кажется проблемой. Sigh ...
Можете ли вы проверить, что платформа Entity Framework загружает обе строки? Есть ли ограничение/ограничение для возврата только одной строки? –
Entity Framework не загружает обе строки правильно. Он загружает обе строки, однако второй - это дубликат первого. Нет ограничений, ограничивающих возврат только одной строки. При использовании SQL Profiler выполненный запрос возвращает ожидаемые данные, но EF, похоже, загружает его неправильно. – Jeremy