【发布时间】:2015-11-12 20:22:40
【问题描述】:
我目前正在使用一个简单的二进制格式化程序来存储我的应用程序的数据。我想从二进制格式化程序转移到 SQL 实现,原因如下:
- 在公共数据源上启用应用程序的并发使用
- 摆脱“专有”格式,这种格式很容易损坏并且可能无法从其他平台/应用程序(甚至其他程序集)访问
我首先实现实体框架代码来设计我的数据库。我的问题围绕着 DataTable 字段的存储。假设我有以下对象:
public class Person
{
public string Name {get;set;}
public DataTable TableOfInformation {get;set;}
}
将字符串“名称”保存到列中非常简单。为了保存数据表,我尝试转换为数据表条目列表。目前我倾向于简单地使用 XML 序列化并将 DataTable 保存为字符串列。
这是保存 DataTable 字段的最佳方式吗?这种方式有什么问题吗?
【问题讨论】:
-
DataTable 确实不是为与 EF 一起使用而设计的。只需将您的数据反序列化为 POCO 对象,这将更容易使用 Code First。
-
您应该更进一步,并将 DataTable 存储为数据库表。
-
您可以使用DataTable.WriteXml 方法将DataTable 转换为XML。但是,这无论如何都是错误的方法。
标签: c# xml entity-framework datatable