Я пытаюсь объединить данные XML isnert в SQL Server 2008 Express с помощью объектной модели SQLXMLBulkLoad из C # (Visual Studio 2010).
Моя проблема в том, что я застрял в отношениях.Рассмотрим следующий аннотированный XSD-файл:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:annotation>
<xs:appinfo>
<sql:relationship name="CompanyEmployeeRel"
parent="Company"
parent-key="ID"
child="Employee"
child-key="CompanyID"/>
</xs:appinfo>
</xs:annotation>
<xs:element name="Employee" sql:key-fields="ID">
<xs:complexType>
<xs:attribute name="ID" sql:datatype="uniqueidentifier"/>
<xs:attribute name="FirstName" sql:datatype="nvarchar(255)" />
<xs:attribute name="LastName" sql:datatype="nvarchar(255)"/>
</xs:complexType>
</xs:element>
<xs:element name="Company" sql:key-fields="ID">
<xs:complexType>
<xs:sequence>
<xs:element ref="Employee" sql:relationship="CompanyEmployeeRel"/>
</xs:sequence>
<xs:attribute name="ID" sql:datatype="uniqueidentifier"/>
<xs:attribute name="Name" sql:datatype="nvarchar(100)"/>
</xs:complexType>
</xs:element>
</xs:schema>
Затем я позволил SQLXMLBulkLoad создать схему БД для меня.Это приводит к следующим двум таблицам:
альтернативный текст http://dl.dropbox.com/u/17384/Bildschirmfoto-3.png
Первичный и внешний ключи правильны как таковые;но моя проблема - подчеркнутые столбцы.Я указал, что столбец ID таблицы Company должен быть уникальным идентификатором, но это nvarchar (40).Также в столбце Name указано nvarchar (40), но я указал, что это должен быть nvarchar (100).
Кто-нибудь знает, почему это происходит?И что я могу сделать против этой проблемы?
С уважением