Вспомогательные методы (модель 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)