2011-02-23 4 views
1

J'essaie EF CodeFirst CTP 5, et de l'utiliser avec WCF Data Services. Je reçois une erreur qui Internal Server Error. The type 'System.Data.Entity.DynamicProxies.Person_C321D7A37002A1B42C3CBAECC27983D77F6B7FCC3F837175B2CBB55CCA66AF55' is not a complex type or an entity type.WCF + Entity Framework CodeFirst = Exception DynamicProxies?

Si j'utilise une personne générée edmx hors de la base de données créée par CF, je n'ai aucun problème. En lisant, il semble que le chargement paresseux vole les choses, et les précédentes versions EF m'ont laissé désactiver la génération de proxy avec un drapeau d'option qui n'est pas présent dans le DbContext. Il existe un moyen de définir LazyLoading sur false, mais cela ne semble pas désactiver la génération de proxy.

Merci.

+0

ne peut pas vous chargez désireux de l'entité relation. –

+0

Non, je ne veux pas du tout les charger, puisqu'il s'agit d'un flux OData et qu'il ne fait que lâcher des liens vers les autres entités. J'ai déjà défini LazyLoadingEnabled = false, donc ce n'est pas une question de quand les choses sont chargées. – Paul

Répondre

4

Voici ce que vous pouvez faire dans le code EF premier CTP5:

((IObjectContextAdapter)context).ObjectContext.ContextOptions.ProxyCreationEnabled = false; 

Sinon, ce bogue dans les services de données WCF dans VS 2010 RTM. Vous pouvez utiliser le CTP1 des services de données WCF qui a this issue corrigé.

Espérons que cela aide.
Merci
Pratik

+0

génial, merci! – Paul

+0

Juste pour le compte rendu, l'installation de CTP1 n'a * pas * résolu le problème, mais la solution avec la conversion en IObjectContextAdapter l'a fait, merci. – Paul

0

En CTP1, les binaires ont été renommé Microsoft.Data.Services. *. Dll. Avez-vous changé les références aux nouveaux assemblages? Je suis assez sûr que ce problème a été corrigé dans CTP1. Donc je voulais juste m'assurer que ça marchait pour toi.

Merci Pratik

+0

Oui, j'utilise CTP 1 – Paul

0

Si vous utilisez la nouvelle classe DbContext, vous pouvez utiliser

Configuration.ProxyCreation = false 

Pour désactiver la création de proxy dynamique

Questions connexes