Namespace 属性 (SSDL)
在 实体数据模型 (EDM) 中,存储元数据 Schema 元素包含一个命名空间名称。当架构中的声明需要完全限定名时,使用命名空间名称。通常使用别名缩写命名空间名称。下面的示例将术语 Self 分配给 AdventureWorksHRTarget 架构的 Alias 属性。
<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRTarget"
Alias="Self"
xmlns="https://schemas.microsoft.com/ado/2006/04/edm/ssdl">
在概念性架构定义语言 (CSDL) 文件中有一个类似的代码行。唯一的区别在于分配给 Namespace 属性的名称以及分配给 xmlns 属性的 URL。
<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRModel"
Alias="Self"
xmlns="https://schemas.microsoft.com/ado/2006/04/edm">
这些声明中使用的命名空间名称反映了它们在构建的数据模型中的用途。AdventureWorksHRTarget 是 AdventureWorksHRModel 用来将它定义的类型与存储联系起来的目标元数据。
在映射规范中,EntityContainerMapping 元素映射了两个实体容器,并且没有引用它们的 namespace 名称。EntityContainer 独立于 Schema,即使它是在 Schema 中定义的。映射规范仅引用容器对象,如下面的映射规范语言 (MSL) 语法所示:CdmEntityContainer="HumanResources"``StorageEntityContainer="HumanResources"
.
<?xml version="1.0" encoding="utf-8"?>
<Mapping Space="C-S"
xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
<EntityContainerMapping CdmEntityContainer="HumanResources"
StorageEntityContainer="HumanResources">
Alias
Alias 属性用于在架构的其余部分中缩写命名空间名称。下面的示例将字符串 Self 分配给 Alias 属性。
<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRModel"
Alias="Self"
xmlns="https://schemas.microsoft.com/ado/2006/04/edm">
Alias 在架构的其余部分中非常有用,它提高了可读性,如下面的语法所示。
<EntityContainer Name="HumanResources">
<EntitySet Name="Department" EntityType="Self.Department" />
<EntitySet Name="Employee" EntityType="Self.Employee" />
<EntitySet Name="EmployeeAddress" EntityType="Self.EmployeeAddress" />
Xmlns
上一个示例还包含 xmlns 属性,它使用所分配的 URL。此 URL 在所有 SSDL 架构中使用。