以概念架构定义语言 (CSDL) 表示的 FunctionImport 元素表示一个函数,该函数在数据源中定义,但通过概念模型对对象可用。 例如,存储模型中的 Function 元素可用于表示数据库中的存储过程。 概念模型中的 FunctionImport 元素表示实体框架 应用程序中的相应函数,并使用 FunctionImportMapping 元素映射到存储模型函数。 在应用程序中调用函数时,会在数据库中执行相应的存储过程。
可以根据 FunctionImport 元素为实体框架 应用程序生成公共语言运行库 (CLR) 方法。 有关更多信息,请参见生成的代码概述(实体数据模型设计器)和如何:使用 EdmGen.exe 生成对象层代码。
FunctionImport 元素可以具有以下子元素(按所列顺序):
Documentation(允许零个或一个元素)
Parameter(允许零个或多个元素)
Annotation 元素(允许零个或多个元素)
应为函数接受的每个参数定义一个 Parameter。
适用的特性
下表介绍可应用于 FunctionImport 元素的特性。
特性名称 | 是否必需 | 值 |
---|---|---|
Name |
是 |
导入的函数的名称。 |
ReturnType |
否 |
函数返回的类型。 如果函数不返回值,不要使用此特性。 否则,值必须为模型范围内的 EDMSimpleType、实体类型、复杂类型或者为实体类型或复杂类型的集合。 ![]()
在面向 .NET Framework 3.5 SP1 版的应用程序的概念模型中,返回类型必须为 EDMSimpleType 或实体类型的集合。
|
EntitySet |
否 |
如果函数返回实体类型的集合,EntitySet 的值必须为该集合所属的实体集。 否则,不得使用 EntitySet 特性。 |
![]() |
---|
可以将任何数量的批注特性(自定义 XML 特性)应用于 FunctionImport 元素。然而,自定义特性可能不属于为 CSDL 保留的任何 XML 命名空间。任何两个自定义特性的完全限定名称都不能相同。 |
示例
下面的示例显示一个 FunctionImport 元素,该元素接受一个参数并返回实体类型的集合:
<FunctionImport Name="GetStudentGrades"
EntitySet="StudentGrade"
ReturnType="Collection(SchoolModel.StudentGrade)">
<Parameter Name="StudentID" Mode="In" Type="Int32" />
</FunctionImport>
另请参见
概念
实体框架概述
CSDL 规范
EntityContainer 元素 (CSDL)
其他资源
CSDL、SSDL 和 MSL 规范
ADO.NET Entity Data Model Tools
How to: Import a Stored Procedure