Maison > développement back-end > C++ > Comment conserver les annotations de données dans les classes générées par Entity Framework ?

Comment conserver les annotations de données dans les classes générées par Entity Framework ?

Patricia Arquette
Libérer: 2025-01-01 12:18:11
original
1021 Les gens l'ont consulté

How to Persist Data Annotations in Entity Framework Generated Classes?

Préserver les annotations de données dans le code généré par Entity Framework

Question :

Comment ajouter des annotations de données à une classe générée par Entity Framework (EF) qui persiste après le code régénération ?

Contexte :

Considérons une classe générée par EF :

public partial class ItemRequest
{
    public int RequestId { get; set; }
}
Copier après la connexion

Modifier ce code directement pour ajouter des annotations (par exemple, [Obligatoire ]) sera écrasé sur le code suivant génération.

Réponse :

EF génère des classes sous forme de classes partielles. En utilisant cela, nous pouvons créer une classe partielle distincte avec les annotations de données souhaitées :

using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

// Ensure the namespace matches the original class
namespace MvcApplication1.Models
{
    // Metadata class for data annotations
    [MetadataType(typeof(ItemRequestMetaData))]
    public partial class ItemRequest
    {
    }

    public class ItemRequestMetaData
    {
        [Required]
        public int RequestId { get; set; }
    }
}
Copier après la connexion

L'attribut MetadataType relie la classe ItemRequestMetaData à la classe ItemRequest d'origine. Cela permet d'appliquer les annotations de données dans ItemRequestMetaData à ItemRequest sans modifier le code généré.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal