如何在不使用设计器的情况下手动编写/编辑XSD文件以生成DataSet类

时间:2018-07-30 02:25:25

标签: c# visual-studio xsd dataset designer

过去(

在XSD中,我可以手动设置默认值,nillable属性等。

由于某种原因,最近在VS 2017中我无法这样做了。当我使用DataSet视觉设计器来将表字段的AllowDbNull属性设置为'false';产生的c#类将按预期工作,但是此字段信息不再写入XSD文件中(例如,该字段元素没有nillable或msdata:AllowDbNull属性)。显示的字段的唯一“传统”属性是:类型和默认值。手动将属性添加到XSD文件中的元素也无效;数据集设计器会忽略这些设置-使用设计器只能设置它们并使它们正常工作。

这引发了一个问题,即VS实际上将表字段信息存储在何处,例如AllowDbNull;似乎VS DataSet设计器在某种位置保留了此信息的配置文件-不再像以前那样保存在XSD中。

在XSD中,对于名为“ test”的表,其中在设计器中设置了AllowDbNull = false的名为“ label”的字段,唯一可见的是这样的东西:

<xs:element name="test" msprop:Generator_TableClassName="testDataTable" msprop:Generator_TableVarName="tabletest" msprop:Generator_TablePropName="test" msprop:Generator_RowDeletingName="testRowDeleting" msprop:Generator_RowChangingName="testRowChanging" msprop:Generator_RowEvHandlerName="testRowChangeEventHandler" msprop:Generator_RowDeletedName="testRowDeleted" msprop:Generator_UserTableName="test" msprop:Generator_RowChangedName="testRowChanged" msprop:Generator_RowEvArgName="testRowChangeEvent" msprop:Generator_RowClassName="testRow">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="label" msprop:Generator_ColumnVarNameInTable="columnlabel" msprop:Generator_ColumnPropNameInRow="label" msprop:Generator_ColumnPropNameInTable="labelColumn" msprop:Generator_UserColumnName="label" type="xs:string" default="bla" />
    </xs:sequence>
  </xs:complexType>
</xs:element>

0 个答案:

没有答案