C#,XML类型列:如何读取/设置值?

时间:2011-07-11 09:38:06

标签: c# xsd

我是一名XML新手,需要一些帮助才能重回正轨。

我有以下xsd代码,其中有两个xsd元素:

...
<xsd:element name="DataCollection">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="Data" maxOccurs="unbounded">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Question" minOccurs="0" type="xsd:string" />
                            <xsd:element name="Input" minOccurs="0" type="xsd:string" />
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
...

此xsd架构已分配给XML类型的DB列 让我们说这个表叫做“A”(在我的C#代码中) 而XML类型的列称为“XML_B”。

实体框架用于数据库访问。

新手问题: 我认为我可以阅读这样:

string test = A.DataCollection.Data.FirstOrDefault(row => row.Input == "Hello world?").Question;

这会给我第一个(或默认的)DB条目/值“问题”字段 XML字段“Input”中包含“Hello world?”。

但是不幸地提出了读取尝试错误,例如“对象未设置为实例”,因为“...数据”等于null,这根本不解决它:

...
if (A.DataCollection.Data == null)
     A.DataCollection.Data = new DataCollectionData[1];
...

我怎样才能为“问题”和“输入”写值?

A.DataCollection.Data.SetValue("Test value for field 'Question'", 0);   // Index 0 = XML field "Question"
A.DataCollection.Data.SetValue("Test value for field 'Input'", 1);      // Index 1 = XML field "Input"

任何帮助都会非常棒。

提前致谢!

0 个答案:

没有答案