2017-10-20 12 views
0

Je:Ajouter attribut xml pour la propriété dans DB First

Entity Framework DB premier

public partial class Departments 
{ 
    public string Name_Department { get; set; } 
    public int Department_ID { get; set; } 
} 

Quand j'étais modèle rafraîchi toutes les modifier dans le fichier a été effacé

J'ai besoin:

Comment puis-je ajouter une propriété d'attribut à Sérialiser XML comme:

[Serializable] 
[XmlType(nameof(Departments))] 
public partial class Departments 
{ 
    [XmlAttribute("Name_Department")] 
    public string Name_Department { get; set; } 
    [XmlAttribute("Department_ID")] 
    public int Department_ID { get; set; } 
} 

Répondre

1

Vous devez rendre les propriétés générées privées dans la fenêtre des propriétés. Ensuite, vous devez créer de nouvelles propriétés publiques qui référencent les propriétés privées et leur ajouter les attributs. Dans la fenêtre des propriétés, vous pouvez également renommer vos propriétés maintenant privées de sorte que vous pouvez nommer vos propriétés publiques comme celles d'origine:

Code généré:

public partial class Departments 
{ 
    private string Name_DepartmentCore { get; set; } 
    private int Department_IDCore { get; set; } 
} 

code personnalisé (en C# 7.0):

[Serializable] 
[XmlType(nameof(Departments))] 
public partial class Departments 
{ 
    [XmlAttribute("Name_Department")] 
    public string Name_Department { 
     get => Name_DepartmentCore; 
     set => Name_DepartmentCore = value; 
    } 
    [XmlAttribute("Department_ID")] 
    public int Department_ID { 
     get => Department_IDCore; 
     set => Department_IDCore = value; 
    } 
} 
+0

Une manière très intéressante. Merci –

+0

Notez que si vous souhaitez utiliser ces propriétés pour les requêtes, vous devez toujours accéder aux propriétés d'origine. – Sefe

1

Votre modèle de classe est généré lorsque vous utilisez DB en premier, c'est-à-dire par conception.

Solution 1. Microsoft supprime d'abord le support de la base de données et edmx est déprimé. Une solution consisterait à utiliser CODE FIRST à la place. Cela vous permettrait de décorer vos classes POCO avec des attributs.

Solution 2. Créez un modèle parallèle uniquement pour la sérialisation XML.

+0

Cette base de données est très ancienne (même s'il y a * .dbf). Malheureusement, je ne peux rien changer là-bas. Je dois m'adapter au fait qu'il y en a. Je vous remercie –