rexian

咨询电话:023-6276-4481

热门文章

联系方式

电 话:023-6276-4481

邮箱:broiling@qq.com

地址:重庆市南岸区亚太商谷6幢25-2

当前位置:网站首页 > 技术文章 > SSDL v3 规范

SSDL v3 规范

编辑:Ethan 发表时间:2017-07-05 08:38:20
Ethan

在实体框架应用程序中,存储模型元数据加载从.ssdl 文件 (写在 SSDL) 到 System.Data.Metadata.Edm.StoreItemCollection 实例并访问通过使用 System.Data.Metadata.Edm.MetadataWorkspace 类中的方法。实体框架使用存储模型元数据来翻译针对存储特定命令的概念模型的查询。

实体框架设计器 (Ef设计师) 在设计时在.edmx 文件中存储存储模型信息。在生成时实体设计器使用信息在.edmx 文件中创建的.ssdl 文件是由实体框架在运行时所需。

SSDL 版本通过 XML 命名空间进行区分。

SSDL 版本XML Namespace
SSDL v1

http://schemas.microsoft.com/ado/2006/04/edm/ssdl

SSDL v2

http://schemas.microsoft.com/ado/2009/02/edm/ssdl

SSDL v3

http://schemas.microsoft.com/ado/2009/11/edm/ssdl


在这一节

 Association 元素(SSDL)

AssociationSet 元素(SSDL)

CommandText 元素(SSDL)

CollectionType 元素(SSDL)

DefiningQuery 元素(SSDL)

Dependent 元素(SSDL)

Documentation 元素(SSDL)

End 元素(SSDL)

EntityContainer 元素(SSDL)

EntitySet 元素(SSDL)

EntityType 元素(SSDL)

Function 元素(SSDL)

Key 元素(SSDL)

OnDelete 元素(SSDL)

Parameter 元素(SSDL)

Principal 元素(SSDL)

Property 元素(SSDL)

PropertyRef 元素(SSDL)

ReferentialConstraint 元素(SSDL)

ReturnType 元素(SSDL)

RowType 元素(SSDL)

Schema 元素(SSDL)

Annotation 元素(SSDL)

Annotation 元素(SSDL)

Facets (SSDL)



关联元素 Association (SSDL)

中存储架构 d 关联元素Ef立信语言 (SSDL) 指定表中的列参与在基础数据库中的外键约束。两个必需的子端元素指定表两端的协会和多样性在每年年底。可选的 R Ef erentialConstraint 元素指定主要和依赖两端的协会,以及参与的列。如果没有 R Ef erentialConstraint 元素,必须使用 AssociationSetMapping 元素以指定关联的列映射。

关联元素可以具有下列子元素 (按列出的顺序):

  • 文档 (零个或一个)

  • 结束 (完全是两个)

  • referentialConstraint (零个或一个)

  • 注释元素 (零个或更多)

适用属性

下表描述了可以应用于关联元素的属性。

属性名称需要价值
名称是啊在基础数据库中的相应外键约束的名称。


注意:
任意数量的注释属性 (自定义 XML 属性) 可以应用于关联元素。然而,自定义属性可能不属于任何为 SSDL 保留的 XML 命名空间。任何两个自定义属性的完全限定名称不能相同。


示例

下面的示例演示使用 R 关联元素EferentialConstraint 元素在 FK_CustomerOrders 外键约束中指定的列的参与:

< 协会名称 =”FK_CustomerOrders”>< 端角色 =”客户”Type=”ExampleModel.Store.Customers”多样性 =”1″>< ondelete 行动 =”级联”/ >< / 结束 >< 端角色 =”命令”Type=”ExampleModel.Store.Orders”多样性 =”*”/ >< R Ef erentialConstraint >< 主体作用 =”客户”>< PropertyREf名称 =”客户 id”/ >< / 校长 >< 依赖角色 =”订单”>< PropertyREf名称 =”客户 id”/ >< / 依赖型 >< /R Ef erentialConstraint >< / 协会 >



AssociationSet元素 (SSDL)

AssociationSet 元素中存储架构 dEf立信语言 (SSDL) 表示基础数据库中的两个表之间的外键约束。参与的外键约束的表列关联元素中指定。对应于一个给定的 AssociationSet 元素的关联元素在 AssociationSet 元素的关联属性中指定。

SSDL 关联集映射到 CSDL 关联集由 AssociationSetMapping 元。然而,如果一个给定的 CSDL 协会 CSDL 协会设置是 dEf董事通过使用 R Ef erentialConstraint 元素,没有相应的 AssociationSetMapping 元素是必要。在此情况下,如果元素是 AssociationSetMapping 目前,映射才Efines 将覆盖由 R Ef erentialConstraint 元。

AssociationSet 元素可以具有下列子元素 (按列出的顺序):

  • 文档 (零个或一个)

  • 结束 (零个或两个)

  • 注释元素 (零个或更多)

适用属性

下表描述了可以应用于 AssociationSet 元素的属性。

属性名称需要价值
名称是啊该协会设置表示外键约束的名称。
协会是啊那 d 关联的名称Efines 参与外键约束的列。


注意:
任意数量的注释属性 (自定义 XML 属性) 可以应用于 AssociationSet 元。然而,自定义属性可能不属于任何为 SSDL 保留的 XML 命名空间。任何两个自定义属性的完全限定名称不能相同。


示例

下面的示例演示表示基础数据库中的外键约束 FK_CustomerOrders AssociationSet 元素:

< AssociationSet 名称 =”FK_CustomerOrders”Association=”ExampleModel.Store.FK_CustomerOrders”>< 结束角色 =”客户”EntitySet =”客户”/ >< 结束角色 =”订单”EntitySet =”订单”/ >< / AssociationSet >



CollectionType元素

(SSDL)

CollectionType 元素中存储架构 dEf立信语言 (SSDL) 指定函数的返回类型是一个集合。CollectionType 元素是 ReturnType 元素的子元素。集合的类型是使用指定的变量子元素:

注意:
任意数量的注释属性 (自定义 XML 属性) 可以应用于 CollectionType 元。然而,自定义属性可能不属于任何为 SSDL 保留的 XML 命名空间。任何两个自定义属性的完全限定名称不能相同。


示例

下面的示例演示一个使用 CollectionType 元素来指定该函数返回的行集合的函数。

< 函数名称 =”GetProducts”IsComposable =”true”架构 =”dbo”>< ReturnType >< CollectionType >< 变量 >< 属性名称 =”产品 id”类型 =”int”可为空值 =”false”/ >< 属性名称 =”类别 Id”类型 =”bigint”可为空值 =”false”/ >< 属性名称 =”产品名称”类型 =”nvarchar”MaxLength =”40″可以为 Null =”false”/ >< 属性名称 =”单价”类型 =”钱”/ >< 属性名称 =”停止”类型 =”咬”/ >< / 变量 >< / CollectionType >< / ReturnType >< / 功能 >



CommandText 元素 (SSDL)

CommandText 元素中存储架构 dEf立信语言 (SSDL) 是元素的子元素功能,允许您向 d Ef ine 在数据库执行的 SQL 语句。CommandText 元素允许您添加类似于数据库中的存储过程的功能,但你 d Ef ine 存储模型中的 CommandText 元素。

CommandText 元素不能有子元素。CommandText 元素体的必须是有效的 SQL 语句为基础数据库。

没有属性都适用于 CommandText 元。

示例

下面的示例演示带有儿童 CommandText 元素的功能元素。通过将它导入的概念模型将 UpdateProductInOrder 功能公开为 ObjectContext 的一种方法。

< 函数名称 =”UpdateProductInOrder”IsComposable =”false”>< CommandText > 更新订单设置 ProductId = @productId 在哪里订单 id = @orderId;   < / CommandText >< 参数名称 =”产品 id”模式”中的”类型 = =”int”/ >< 参数名称 =”订单 Id”模式 =”中的”类型 =”int”/ >< / 功能 >



DefiningQuery 元素 (SSDL)

D Ef iningQuery 元素中存储架构 dEf立信语言 (SSDL) 允许您直接在基础数据库中执行 SQL 语句。D Ef iningQuery 元素常用的数据库视图类似,但认为是 dEf而不是数据库存储模型中的氢离子浓度。视图 dEf董事在 D Ef iningQuery 元素可以映射到 EntitySetMapping 元素通过概念模型中的实体类型。这些映射是只读。

下面的 SSDL 语法演示宣言 》 的 EntitySet 紧接着 D Ef iningQuery 元素,其中包含用于检索视图的查询。

< 架构 >< EntitySet 名称 =”表”EntityType=”Self.STable”>< D Ef iningQuery > TABLE_SCHEMA,TABLE_NAME 从普通作为选择 TABLE_CATALOG,测试。表 < /D Ef iningQuery >< / EntitySet >< / 架构 >


可以使用实体框架中的存储的过程,使读写场景视图上。你可以用作数据源视图或实体 SQL 视图基表中检索数据,处理由存储过程的变化。

你可以使用 D Ef iningQuery 元素到目标 Microsoft SQL Server Compact 3.5。虽然 SQL Server Compact 3.5 不支持存储的过程,您可以实现类似的功能,与 D Ef iningQuery 元。另一个地方,它可以我们Eful 是在创建存储的过程,以克服之间使用的编程语言和那些数据源中的数据类型不匹配。您可以编写 D Ef iningQuery,需要一组特定的参数,然后调用一组不同的参数,例如,删除数据的存储过程的存储的过程。


Dependent元素 (SSDL)

存储架构 d 中的从属元素Ef立信语言 (SSDL) 是一个子元素到 R Ef erentialConstraint 元素,d Ef ines 依赖端的外键约束 (也称为 rEf微分约束)。依赖的元素指定列 (或多列) 中表那 rEf电池小学关键列 (或多列)。PropertyREf元素指定哪些列是 r Ef erenced。主要元素指定的主键列,r Ef erenced 由依赖元素中指定的列。

依赖的元素可以具有下列子元素 (按列出的顺序):

  • PropertyR Ef (一个或多个)

  • 注释元素 (零个或更多)

适用属性

下表描述了可以应用于从属元素的属性。

属性名称需要价值
作用是啊角色属性 (如果使用) 的相应的结束元素; 相同的值否则为包含 r 的表的名称Eferencing 列。


注意:
任意数量的注释属性 (自定义 XML 属性) 可以应用于依赖的元素。然而,自定义属性可能不属于任何为 CSDL 保留的 XML 命名空间。任何两个自定义属性的完全限定名称不能相同。


示例

下面的示例演示使用 R 关联元素EferentialConstraint 元素在 FK_CustomerOrders 外键约束中指定的列的参与。依赖的元素作为依赖端的约束指定客户 id 表中的列顺序。

< 协会名称 =”FK_CustomerOrders”>< 端角色 =”客户”Type=”ExampleModel.Store.Customers”多样性 =”1″>< ondelete 行动 =”级联”/ >< / 结束 >< 端角色 =”命令”Type=”ExampleModel.Store.Orders”多样性 =”*”/ >< R Ef erentialConstraint >< 主体作用 =”客户”>< PropertyREf名称 =”客户 id”/ >< / 校长 >< 依赖角色 =”订单”>< PropertyREf名称 =”客户 id”/ >< / 依赖型 >< /R Ef erentialConstraint >< / 协会 >



文档元素(Documentation) (SSDL)

存储架构 d 中的文档元素Ef立信语言 (SSDL) 可以用于提供有关对象的是 d 信息Ef在父元素中的氢离子浓度。

文档元素可以具有下列子元素 (按列出的顺序):

  • 摘要: briEf父元素的描述。(零个或一个元素)

  • LongDescription: 父元素广泛的描述。(零个或一个元素)

适用属性

任意数量的注释属性 (自定义 XML 属性) 可以应用于文档元素。然而,自定义属性可能不属于任何为 CSDL 保留的 XML 命名空间。任何两个自定义属性的完全限定名称不能相同。

示例

下面的示例演示文档元素作为 EntityType 元素的子元素。

< EntityType 名称 =”客户”>< 文档 >< 摘要 > 摘要这里。 < / 摘要 >< LongDescription > 长描述这里。 < / LongDescription >< / 文档 >< 键 >< PropertyREf名称 =”客户 id”/ >< / 关键 >< 属性名称 =”客户 id”类型 =”int”可为空值 =”false”/ >< 属性名称 =”名称”Type=”nvarchar(max)”可以为 Null =”false”/ >< / EntityType >



结束元素(End) (SSDL)

结束元素中存储架构 dEf立信语言 (SSDL) 在基础数据