FunctionImport 元素 (CSDL)

以概念架构定义语言 (CSDL) 表示的 FunctionImport 元素表示一个函数,该函数在数据源中定义,但通过概念模型对对象可用。 例如,存储模型中的 Function 元素可用于表示数据库中的存储过程。 概念模型中的 FunctionImport 元素表示实体框架 应用程序中的相应函数,并使用 FunctionImportMapping 元素映射到存储模型函数。 在应用程序中调用函数时,会在数据库中执行相应的存储过程。

可以根据 FunctionImport 元素为实体框架 应用程序生成公共语言运行库 (CLR) 方法。 有关更多信息,请参见生成的代码概述(实体数据模型设计器)如何:使用 EdmGen.exe 生成对象层代码

FunctionImport 元素可以具有以下子元素(按所列顺序):

应为函数接受的每个参数定义一个 Parameter

适用的特性

下表介绍可应用于 FunctionImport 元素的特性。

特性名称 是否必需

Name

导入的函数的名称。

ReturnType

函数返回的类型。 如果函数不返回值,不要使用此特性。 否则,值必须为模型范围内的 EDMSimpleType、实体类型、复杂类型或者为实体类型或复杂类型的集合。

Cc716710.note(zh-cn,VS.100).gif注意:
在面向 .NET Framework 3.5 SP1 版的应用程序的概念模型中,返回类型必须为 EDMSimpleType 或实体类型的集合。

EntitySet

如果函数返回实体类型的集合,EntitySet 的值必须为该集合所属的实体集。 否则,不得使用 EntitySet 特性。

Cc716710.note(zh-cn,VS.100).gif注意:
可以将任何数量的批注特性(自定义 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