Поделиться через


Вспомогательные методы (модель EDM)

С типами модели EDM, определенными в схемах, не связаны никакие методы, в отличие от классов, используемых в объектно-ориентированном программировании. Вспомогательные методы представляют собой определяемые пользователем операции, добавляющие функциональность для работы с сущностями и ассоциациями, построенными на основе модели EDM.

Вспомогательные методы реализуются в разделяемых классах. В разделяемом классе определение класса разбито по нескольким исходным файлам. Каждый исходный файл содержит часть определения класса, а во время компиляции приложения все части объединяются. Вспомогательный метод, описанный в данном примере, добавляет метод, используемый типами, заданными в схеме Реализация ассоциаций (модель EDM). Дополнительные сведения см. в статье Настройка объектов (платформа Entity Framework).

Методы разделяемых классов

Вспомогательные методы для работы с сущностями и ассоциациями добавляют функциональность в приложения, построенные на основе модели EDM. В следующем вспомогательном методе вычисляется значение ExtendedPrice для каждого объекта OrderLines, связанного с конкретным заказом Order, затем добавляется налог и вычисляется общая сумма покупки, TotalAmount, представленной объектом Order.

Метод реализуется в разделяемом классе, определенном в данном примере. Следующий исходный код на языке C# компилируется вместе с кодом, созданным на основе CSDL-схемы проекта модели EDM. Результатом является метод класса Orders, который можно применять в коде приложения к экземплярам этого типа. Сегмент программного кода, где используется этот метод, см. в разделе Код приложения с использованием ассоциаций (модель 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;

        }
    }
}

См. также

Задачи

Как настроить автоматически созданные объекты данных (платформа Entity Framework)

Основные понятия

Реализация сущностей (модель EDM)
Реализация ассоциаций (модель EDM)