Colonnes XML dans une application Code-First
Je suis en train de créer une colonne XML dans le Premier Code. Je suis bien conscient Entity Framework ne prend totalement en charge les colonnes XML, et qu'il les lit comme une chaîne de caractères. C'est très bien. Je voudrais encore la colonne de type XML. Voici ma classe:
class Content
{
public int ContentId { get; set; }
[Column(TypeName="xml")]
public string XmlString { get; set; }
[NotMapped]
public XElement Xml { get { ... } set { ... } }
}
Problème, c'est que le Premier Code Migrations ignore complètement l'attribut de la Colonne et crée le champ comme un nvarchar(max)
. J'ai essayé d'utiliser [DataType("xml")]
mais qui, aussi, n'a pas fonctionné.
Est-ce une migration bug?
source d'informationauteur zmbq
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé:
J'ai réalisé ce qui est nécessaire avec un attribut et j'ai décoré ma classe du modèle de champ xml avec l'attribut.
A obtenu l'aide de ces 2 articles:
https://entityframework.codeplex.com/wikipage?title=Code%20First%20Annotations
https://andy.mehalick.com/2014/02/06/ef6-adding-a-created-datetime-column-automatically-with-code-first-migrations/
Solution
Définir L'Attribut
Registre de l'Attribut dans le Contexte
Dans le "OnModelCreating" du contexte
Sql Personnalisé Générateur
Registre Sql Personnalisé Générateur
Dans la Configuration de la Migration constructeur, inscrire le SQL personnalisé générateur.
Mais que faire si XmlContent est nulle ??
Peut-être :