2011-02-09 3 views
3

Je suis en train de tester le CTP5 pour le code d'encadrement d'entité, et j'ai rencontré ce problème J'ai une classe qui a une propriété de type Uri (System.Uri), mais il semble que c'est incapable d'identifier automatiquement comment stocker, donc j'obtiens une erreur commeEntity Framework Code Premier CTP5: Comment définir les types non primitifs

Problem in mapping fragments starting at line 23:No mapping specified for properties WebPage.Uri in Set WebPage 

Comment puis-je dire le modèle de carte Uri à un varchar, par exemple, l'url de l'uri ??

Répondre

1

Le modèle POCO actuel doit se lier aux types primitifs. Vous pouvez utiliser un type complexe de liaison tels que:

[ComplexType()] 
public class UriHelper 
{ 
    public string StringRepresentation {get;set;} 
    public Uri ActualUri() 
    { 
     return new Uri(StringRepresentation); 
    } 
} 

Et dans votre référence d'objet réel ce type complexe comme référence Uri si vous devez absolument. Votre mappage référencerait alors la propriété pour la valeur réelle en tant que chaîne. La dernière option consiste à créer un mappage personnalisé de l'URI à la chaîne et vice versa pour le moteur EF à utiliser. Cependant, je ne conseillerais pas cela. La propriété de base de données réelle est de type varchar ou nvarchar, pas URI. Ainsi, EF ne sait pas ce qu'est une URI.

Questions connexes