2010-09-19 3 views
0

J'ai une vue qui renvoie des données comme suit:WCF Rest/Entity Framework - Affichage non désérialisable comme prévu

1 | Abita | NULL | http://www.abita.com/
2 | Abita | Abbey Ale | J'utilise WCF REST pour obtenir la représentation XML de cette vue, via un objet de structure d'entité. Lors de l'affichage des données renvoyées en XML dans un navigateur, la première ligne affiche les données que je pense:

<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> 

Cependant, la deuxième ligne ne semble pas désérialiser correctement la ligne/objet, car il ne contient pas les données de la rangée deux.

<vw_Url z:Ref="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" /> 

Une idée pourquoi ça pourrait être?

MISE À JOUR: J'ai noté que cela était dû à UNION dans la vue. Les lignes sont unies ensemble à partir de deux tables différentes, et pour une raison quelconque, EF traite la seconde comme une référence à la première. Peut-être que c'est un bug EF? Des idées pour une solution de contournement?

Cela peut être un bug EF/une limitation dans EF 1.0. http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/9293cf4d-deef-40b1-ab56-a0ee1e770dd9 Cependant, j'utilise EF 4.0 et cela semble toujours être un problème. Soupir ...

+0

Pouvez-vous vérifier que Entity Framework charge les deux lignes? Y a-t-il une restriction/limitation pour retourner une seule ligne? –

+0

Entity Framework ne charge pas correctement les deux lignes. Il charge les deux lignes, cependant, la seconde est une copie de la première. Il n'y a pas de restriction limitant seulement une ligne retournée. Lors de l'utilisation de SQL Profiler, la requête exécutée renvoie les données attendues, mais EF semble les charger de manière incorrecte. – Jeremy

Répondre

0

MISE À JOUR: J'ai noté que cela était causé par un UNION dans la vue. Les lignes sont unies ensemble à partir de deux tables différentes, et pour une raison quelconque, EF traite la seconde comme une référence à la première. Peut-être que c'est un bug EF?

Cela peut être un bug EF/une limitation dans EF 1.0. http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/9293cf4d-deef-40b1-ab56-a0ee1e770dd9 Cependant, j'utilise EF 4.0 et cela semble toujours être un problème. Soupir ...

Questions connexes