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
947 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!

source:php.cn
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