2010-06-25 110 views
1

这是一个概念性问题,而不是任何东西。继承的类返回不同的值

我有一个名为“RawReader”的基类。

它建立了类继承和读取特定数据系统的框架。例如,我想要以已知格式的FoxPro数据库,CSV文件或SQL数据库(当前大约有8种格式)读取应用程序,然后通过Web服务传输它并从其创建SQL数据库它。

我有一切使用CSV,FoxPro,Access,Excel等......很简单。

继承RawReader的类,如RawCSV,RawFoxPro,RawAccess都会返回一个包含作为其中一个成员的数据集的结构。数据集包含来自原始系统的数据。 webservice接收这个结构并创建sql表并将数据加载到它中。这已经被编码并且效果很好。

我的问题现在来阅读SQL。显然,我可以遵循相同的路径,将远程SQL数据库读入数据集,像上面那样传输数据集等等。我的“问题”出现在我认为将SQL数据库传输到数据集,通过web服务传输它,然后尝试以编程方式重新创建SQL数据库。我觉得我从SQL数据库中丢失了很多细节信息(字段大小,扩展信息等等)。在实践中,创建数据库的备份,将其转换为流对象并传输备份似乎更容易转到web服务。但这是问题所在......

由于所有的类都是从基类继承的,所以它们被设置为返回一个DataSet。 hack-ish的方式是将流对象添加到返回结构中,并在我的webservice中添加其他代码以为SQL源创建特例,但我试图避免这种情况。

任何关于“正确”的方式去这样的事情的想法?

回答

0

我真的没有看到问题,DataColumn,DataTable和DataSet有一个ExtendedProperties成员,它允许你附加任意的元数据。您的RawXxx阅读器都可以假设数据最终将在SQL数据库中结束,这样他们都可以同意命名这些元数据项。在接收端,您只需要处理缺失的元数据项目。

+0

谢谢,我想我最终会用它来存储接收端的娱乐列信息。我知道我错过了明显的东西! – Wolfmarsh 2010-06-25 17:38:12