Partager via


Méthodes d'assistance (EDM)

Les types EDM (Entity Data Model) définis dans les schémas n'ont pas de méthodes associées comme les classes utilisées dans la programmation orientée objet. Les méthodes d'assistance sont des opérations définies par l'utilisateur qui ajoutent des fonctionnalités aux entités et associations créées à l'aide du modèle EDM.

Les méthodes d'assistance sont implémentées dans des classes partielles. Une classe partielle fractionne la définition d'une classe sur deux fichiers sources, ou plus. Chaque fichier source contient une section de la définition de classe, et toutes les sections sont combinées lorsque l'application est compilée. La méthode d'assistance décrite dans cet exemple ajoute une méthode qui est utilisée par les types définis dans Implémentation d'associations (EDM). Pour plus d'informations, voir Personnalisation des objets (Entity Framework).

Méthodes de classes partielles

Les méthodes d'assistance qui utilisent des entités et des associations ajoutent des fonctionnalités aux applications basées sur le modèle EDM. La méthode d'assistance suivante calcule le montant ExtendedPrice de chaque élément OrderLines associé à une commande (Order), ajoute la taxe, puis calcule la valeur TotalAmount de l'achat représenté par la commande (Order).

Cette méthode est implémentée dans une classe partielle définie dans cet exemple. Le code source C# suivant est compilé avec le code généré à partir du schéma CSDL (Conceptual Schema Definition Language) du projet EDM. Le résultat est une méthode sur la classe Orders qui peut être utilisée sur des instances du type par le code de l'application. Pour obtenir un segment utilisant cette méthode, voir Code d'application utilisant des associations (EDM).

using System;
using System.Data;

namespace OrderInfoModel
{
    public partial class Orders :
                      global::System.Data.Objects.DataClasses.EntityObject
    {
        public decimal ComputeOrder()
        {
            this.TotalAmount = 0;
            foreach (OrderLines orderLine in this.OrderLines)
            {
                orderLine.ExtendedPrice = orderLine.Quantity *
                                           orderLine.UnitPrice;
                this.TotalAmount = this.TotalAmount +
                                       orderLine.ExtendedPrice;
            }
           
            this.Tax = Decimal.Round(((decimal)this.TotalAmount *
                                            (decimal) .08), 2);
            this.TotalAmount = this.TotalAmount + this.Tax;

            return (decimal)this.TotalAmount;

        }
    }
}

Voir aussi

Tâches

Procédure : personnaliser des objets de données générés (Entity Framework)

Concepts

Implémentation d'entités (EDM)
Implémentation d'associations (EDM)