При изменении набора данных XSD в VS2010 генерируется код, наследуемый от DataTable вместо TypedTableBase <Type> - PullRequest
0 голосов
/ 07 марта 2011

Текущий XSD:

<xs:element name="Country">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="code" type="xs:string" />
            <xs:element name="name" type="xs:string" />
            <xs:element name="diallingcode" type="xs:int" />
            <xs:element name="displayOrder" type="xs:nonNegativeInteger" />
        </xs:sequence>
    </xs:complexType>
    <xs:key name="countryKey1">
        <xs:selector xpath="." />
        <xs:field xpath="mstns:code" />
    </xs:key>
</xs:element>

И сгенерированный класс:

[global::System.Serializable()]
    [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")]
    public partial class CountryDataTable : global::System.Data.TypedTableBase<CountryRow> {

Как только я изменил XSD, добавив новое поле.Сгенерированный класс меняется на:

[global::System.Serializable()]
    [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")]
    public partial class CountryDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable {

Этот последний код разбивает некоторые запросы Linq, использующие набор данных.

Кто-нибудь знает, в чем может быть проблема?

1 Ответ

1 голос
/ 08 марта 2011

Генерация кода еще не работает должным образом (при обновлении существующего XSD). Я нашел способ решить проблему - удалить файл Dataset.Designer.cs (или просто переименовать его) каждый раз, когда я хочу внести изменения в XSD. Когда файл создается с нуля, код генерируется правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...