2010-09-19 3 views
0

У меня есть представление, которое возвращает данные, подобные следующим: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 ...

+0

Можете ли вы проверить, что платформа Entity Framework загружает обе строки? Есть ли ограничение/ограничение для возврата только одной строки? –

+0

Entity Framework не загружает обе строки правильно. Он загружает обе строки, однако второй - это дубликат первого. Нет ограничений, ограничивающих возврат только одной строки. При использовании SQL Profiler выполненный запрос возвращает ожидаемые данные, но EF, похоже, загружает его неправильно. – Jeremy

ответ

0

ОБНОВЛЕНИЕ: Я отслеживал это из-за того, что был вызван UNION в представлении. Строки объединены вместе из двух разных таблиц, и по какой-то причине 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 ...

Смежные вопросы