次の方法で共有


モデル定義関数

モデル定義関数は、概念モデルで定義される関数です。 モデル定義関数の本体は Entity SQL で表されます。これにより、データ ソースでサポートされているルールや言語とは別に関数を表現できます。

モデル定義関数の定義には、次の情報が含まれています。

  • 関数名です。 (必須)

  • 戻り値の型。 (省略可能)

    戻り値の型が指定されていない場合、戻り値は void です。

  • パラメーター情報。 (省略可能)

  • 関数の本体を定義する Entity SQL 式。

モデル定義関数は出力パラメーターをサポートしないことに注意してください。 モデル定義関数を構成できるように、この制限が適用されます。

次の図は、 BookPublisherAuthorの 3 種類のエンティティを持つ概念モデルを示しています。

公開日を持つモデルを示すスクリーンショット。

ADO.NET Entity Framework では、概念スキーマ定義言語 (CSDL) と呼ばれるドメイン固有言語 (DSL) を使用して概念モデルを定義します。 次の CSDL では、概念モデルで、(上の図の) Book のインスタンスが発行されてからの年数を返す関数を定義します。

<Function Name="GetYearsInPrint" ReturnType="Edm.Int32" >
      <Parameter Name="book" Type="BooksModel.Book" />
      <DefiningExpression>
        Year(CurrentDateTime()) - Year(cast(book.PublishedDate as DateTime))
      </DefiningExpression>
    </Function>

こちらも参照ください