ヘルパ メソッド (EDM)

スキーマで定義される Entity Data Model (EDM) の型は、オブジェクト指向プログラミングで使用されるクラスのようにメソッドが関連付けられていません。ヘルパ メソッドは、エンティティおよびアソシエーションに機能を追加するユーザー定義の操作であり、EDM を使用して作成されます。

ヘルパ メソッドは部分クラスで実装します。部分クラスによって、クラスの定義を複数のソース ファイルに分割します。各ソース ファイルにはクラス定義のセクションがあり、アプリケーションのコンパイル時にすべてのセクションが結合されます。この例で説明するヘルパ メソッドにより、「アソシエーションの実装 (EDM)」で定義された型で使用されるメソッドが追加されます。詳細については、「オブジェクトのカスタマイズ (Entity Framework)」を参照してください。

部分クラスのメソッド

エンティティおよびアソシエーションを使用するヘルパ メソッドにより、EDM を基に作成されたアプリケーションに機能を追加します。次に示すヘルパ メソッドでは、Order に関連付けられている各 OrderLinesExtendedPrice の合計額を計算して、税金を加算し、Order が表す TotalAmount の金額を計算します。

このメソッドは、この例で定義される部分クラスに実装されます。次の C# ソース コードは、EDM プロジェクトの概念スキーマ定義言語 (CSDL) スキーマから生成されたコードと共にコンパイルされます。結果は、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)