这更像是一个概念问题。
我有一个名为“RawReader”的基类。
它为类继承它并在特定数据系统中读取设置框架。
例如,我希望以已知格式的FoxPro数据库,CSV文件或SQL数据库(当前大约有8种格式)读取应用程序,然后通过Web服务传输它并从中创建SQL数据库
我使用CSV,FoxPro,Access,Excel等等所有工作......很简单。
继承RawReader的类(如RawCSV,RawFoxPro,RawAccess)都返回包含数据集作为其中一个成员的结构。数据集包含原始系统中的数据。 Web服务接收此结构并创建sql表并将数据加载到其中。这已经编码并且效果很好。
现在我的问题是阅读SQL。显然,我可以遵循相同的路径,将远程SQL DB读入数据集,如上所述传输数据集等等......我的“问题”出现在我认为将SQL数据库传输到a的情况下没有多大意义数据集,通过Web服务传输,然后尝试以编程方式重新创建SQL数据库。我觉得我从SQL数据库中丢失了很多细节(字段大小,扩展信息等等)。实际上,创建数据库备份,将其转换为流对象并传输备份似乎更容易到web服务。但这就是问题所在......
由于所有类都继承自基类,因此它们被设置为返回DataSet。 hack-ish的方法是将流对象添加到返回结构中,并在我的webservice中添加其他代码以为SQL源创建一个特殊情况,但我试图避免这种情况。
有关“正确”方式的任何想法去做这样的事情吗?
答案 0 :(得分:0)
我没有真正看到问题,DataColumn,DataTable和DataSet都有一个ExtendedProperties成员,允许您附加任意元数据。您的RawXxx读者都可以假设数据最终将在SQL数据库中结束,因此他们都可以就命名这些元数据项达成一致。在接收端,您只需要处理缺少的元数据项。