将数据集转换为模型类

时间:2011-07-20 09:24:08

标签: c# .net asp.net-mvc

我的Web服务返回一个包含1个表的数据集,该表包含135列。 我需要构建一个模型类(在C#中),它应该有135个列名作为类的属性名。

我有什么方法可以使用文件流编写器&建立我的班级?

注意:我可以轻松地将数据集转换为XML,但后来我要做很多复制粘贴工作来手动创建类。 :(

3 个答案:

答案 0 :(得分:1)

实际上有一些方法可以将XML转换为C#中的类:

http://sharpertutorials.com/using-xsd-tool-to-generate-classes-from-xml/

但是如果XML来自数据集的默认序列化,那么它可能看起来很可怕。

答案 1 :(得分:1)

我有另一种方法,如下所述:

第1步:将数据集转换为XML文档:

            var xmlSW = new System.IO.StreamWriter(@"c:\xml\Krishna.xml");
            myDataset.WriteXml(xmlSW, System.Data.XmlWriteMode.WriteSchema);
            xmlSW.Close();

第2步:将XML文档转换为XSD文档。

   -> Open Visual Studio Command Promt.
   -> Type : xsd c:\xml\Krishna.xml (that is the path of the xml file.

对于Eg: C:\ Windows \ system32> xsd c:\ xml \ krishna.xml Microsoft(R)Xml架构/数据类型支持实用程序 [Microsoft(R).NET Framework,版本4.0.30319.1] 版权所有(C)Microsoft Corporation。版权所有。 写文件'C:\ Windows \ system32 \ krishna.xsd'。

第3步:将xsd转换为C#类。

   -> Open Visual Studio Command Promt.
   -> Type : xsd krishna.xsd /classes

对于Eg: C:\ Windows \ system32> xsd krishna.xsd / classes Microsoft(R)Xml架构/数据类型支持实用程序 [Microsoft(R).NET Framework,版本4.0.30319.1] 版权所有(C)Microsoft Corporation。版权所有。 写文件'C:\ Windows \ system32 \ krishna.cs'。

注意:Resharper或类似工具可以正确重命名生成的属性名称(如果不正确)。

输出类文件可能包含一些您需要清理的不必要信息。 因此,如果您的数据集正在撤回包含数百个列的大型表格,则此方法是合适的。你不想手动复制粘贴所有这些以创建自己的映射类。

获得结构(类)后,可以使用XmlSerializer将其转换为对象或反之。

答案 2 :(得分:0)

我建议你研究一下Scaffolding。你可以在这里下载:

ASP.Net MVC Scaffold Generator

  

MVC Scaffold Generator是新ASP.NET的CRUD代码生成器   MVC框架。

     

MVC Scaffold Generator可让您快速创建基本版   添加/编辑/删除/列出Asp.NET页面。

您还可以在此处观看截屏视频:

ASP.Net MVC Scaffold Generator screencast

以下是Microsoft演练:

Using MVC View Templates with Data Scaffolding