モデル定義関数
"モデル定義関数" は、概念モデルで定義される関数です。 モデル定義関数の本体は、Entity SQL により表現されます。これにより、データ ソースでサポートされる規則または言語に関係なく関数を表現することが可能になります。
モデル定義関数の定義には、次の情報が含まれます。
関数名。 (必須)
戻り値の型。 (オプション)。
Note
戻り値の型が指定されていない場合、戻り値は void になります。
パラメーター情報。 (オプション)。
関数の本体を定義する Entity SQL 表現。
モデル定義関数では、出力パラメーターがサポートされません。 この制約は、モデル定義関数を構成できるようにするためにあります。
例
下のダイアグラムは、Book
、Publisher
、および Author
という 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>