我想在我的 *.csdl 中使用“Using”元素来导入其他命名空间,并使用 POCO 来转换对象。
我使用的 CSDL 看起来像这样:
<Schema xmlns="http://schemas.microsoft.com/ado/2008/09/edm"
xmlns:cg="http://schemas.microsoft.com/ado/2006/04/codegeneration"
xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator"
Namespace="BooksModel" Alias="Self">
<Using Namespace="BooksModel.Extended" Alias="BMExt" />
<EntityContainer Name="BooksContainer" >
<EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
</EntityContainer>
<EntityType Name="Publisher">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Type="Int32" Name="Id" Nullable="false" />
<Property Type="String" Name="Name" Nullable="false" />
<Property Type="BMExt.Address" Name="Address" Nullable="false" />
</EntityType>
</Schema>
(http://msdn.microsoft.com/en-us/library/bb738545.aspx)
但是,当我使用模板 (POCO) 来转换我的 CSDL 时,运行工具会引发转换错误:
运行转换:没有遇到“BooksModel.Extended”命名空间的架构。确保命名空间正确或指定了定义命名空间的架构。
运行转换:未知命名空间或别名 (BooksModel.Extended)。
我像这样加载我的 CSDL:
var inputFile = @"CSDL_NAME.csdl";
var ItemCollection = loader.CreateEdmItemCollection(inputFile);
如何修改模板以包含未知名称空间?