ScalarProperty 元素 (MSL)
以映射规范语言 (MSL) 表示的 ScalarProperty 元素将概念模型实体类型、复杂类型、或关联的属性映射到基础数据库中的表列或存储过程参数。
注意: |
---|
将修改函数映射到其中的存储过程必须在存储模型中声明。有关更多信息,请参见 Function 元素 (SSDL)。 |
ScalarProperty 元素可以是以下元素的子元素:
作为 MappingFragment、ComplexProperty 或 EndProperty 元素的子元素,ScalarProperty 元素将概念模型中的属性映射到数据库中的列。 作为 InsertFunction、UpdateFunction 或 DeleteFunction 元素的子元素,ScalarProperty 元素将概念模型中的属性映射到存储过程参数。
ScalarProperty 元素不能具有任何子元素。
适用的特性
应用于 ScalarProperty 元素的特性根据元素的角色的不同而不同。
下表介绍在 ScalarProperty 元素用于将概念模型属性映射到数据库中的列时适用的特性:
特性名称 | 是否必需 | 值 |
---|---|---|
Name |
是 |
要映射的概念模型属性的名称。 |
ColumnName |
是 |
要映射的表列的名称。 |
下表介绍 ScalarProperty 元素用于将概念模型属性映射到存储过程参数时适用于该元素的特性:
特性名称 | 是否必需 | 值 |
---|---|---|
Name |
是 |
要映射的概念模型属性的名称。 |
ParameterName |
是 |
正在映射的参数的名称。 |
Version |
否 |
Current 或 Original,具体取决于是属性的当前值还是原始值用于并发检查。 |
示例
下面的示例演示 ScalarProperty 元素的两种用法:
将 Person 实体类型的属性映射到 Person 表的列。
将 Person 实体类型的属性映射到 UpdatePerson 存储过程的参数。 存储过程在存储模型中声明。
<EntitySetMapping Name="People">
<EntityTypeMapping TypeName="SchoolModel.Person">
<MappingFragment StoreEntitySet="Person">
<ScalarProperty Name="PersonID" ColumnName="PersonID" />
<ScalarProperty Name="LastName" ColumnName="LastName" />
<ScalarProperty Name="FirstName" ColumnName="FirstName" />
<ScalarProperty Name="HireDate" ColumnName="HireDate" />
<ScalarProperty Name="EnrollmentDate"
ColumnName="EnrollmentDate" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="SchoolModel.Person">
<ModificationFunctionMapping>
<InsertFunction FunctionName="SchoolModel.Store.InsertPerson">
<ScalarProperty Name="EnrollmentDate"
ParameterName="EnrollmentDate" />
<ScalarProperty Name="HireDate" ParameterName="HireDate" />
<ScalarProperty Name="FirstName" ParameterName="FirstName" />
<ScalarProperty Name="LastName" ParameterName="LastName" />
<ResultBinding Name="PersonID" ColumnName="NewPersonID" />
</InsertFunction>
<UpdateFunction FunctionName="SchoolModel.Store.UpdatePerson">
<ScalarProperty Name="EnrollmentDate"
ParameterName="EnrollmentDate"
Version="Current" />
<ScalarProperty Name="HireDate" ParameterName="HireDate"
Version="Current" />
<ScalarProperty Name="FirstName" ParameterName="FirstName"
Version="Current" />
<ScalarProperty Name="LastName" ParameterName="LastName"
Version="Current" />
<ScalarProperty Name="PersonID" ParameterName="PersonID"
Version="Current" />
</UpdateFunction>
<DeleteFunction FunctionName="SchoolModel.Store.DeletePerson">
<ScalarProperty Name="PersonID" ParameterName="PersonID" />
</DeleteFunction>
</ModificationFunctionMapping>
</EntityTypeMapping>
</EntitySetMapping>
示例
下一个示例显示了 ScalarProperty 元素,该元素用于将概念模型关联的插入和删除函数映射到数据库中的存储过程。 存储过程在存储模型中声明。
<AssociationSetMapping Name="CourseInstructor"
TypeName="SchoolModel.CourseInstructor"
StoreEntitySet="CourseInstructor">
<EndProperty Name="Person">
<ScalarProperty Name="PersonID" ColumnName="PersonID" />
</EndProperty>
<EndProperty Name="Course">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
</EndProperty>
<ModificationFunctionMapping>
<InsertFunction FunctionName="SchoolModel.Store.InsertCourseInstructor" >
<EndProperty Name="Course">
<ScalarProperty Name="CourseID" ParameterName="courseId"/>
</EndProperty>
<EndProperty Name="Person">
<ScalarProperty Name="PersonID" ParameterName="instructorId"/>
</EndProperty>
</InsertFunction>
<DeleteFunction FunctionName="SchoolModel.Store.DeleteCourseInstructor">
<EndProperty Name="Course">
<ScalarProperty Name="CourseID" ParameterName="courseId"/>
</EndProperty>
<EndProperty Name="Person">
<ScalarProperty Name="PersonID" ParameterName="instructorId"/>
</EndProperty>
</DeleteFunction>
</ModificationFunctionMapping>
</AssociationSetMapping>