有没有更好的方法来保存本地数据?

时间:2012-01-25 22:09:56

标签: entity-framework-4.1 strongly-typed-dataset

2009年,我开始重新编写我们最古老的VB6应用之一。我首先编写了一个在.NET 3.5中的WCF服务,从我们的SQL Server 2005数据库中提取数据并将其存储在那里。我在VB6中编写了一个类似的COM +组件,它通过网络将数据作为数组传输。在2009年,我以为我会使用ADO.NET DataSet。

快进3年至今。事实上,虽然我在2009年开始这个项目,但其他紧迫的项目和问题总是把它推到了后面。现在,我正试着去我离开的地方。我们的设计是从后端SQL Server数据库中提取数据,然后将其本地存储在SQL Express数据库中。

用户计算机上的应用程序将针对本地SQL Express数据库运行,并且只有在用户完成后才将其传输到后端服务器。他们的用户可能会离开现场工作,并在返回上传数据之前离开相当长的时间(几个月)。在这个介入的时间里,我正在尝试学习实体框架,以对抗本地数据存储。

很酷,将LINQ用于实体对象的整个想法等等。但是,伙计,我正在努力快速编码从我的旧WCF服务带回的数据集中的数据传输到本地实体类。我可以从返回的数据集/数据表中描绘每个表中的每一列,但是WOW,这是很多工作!

有更快的方法吗?

1 个答案:

答案 0 :(得分:1)

尝试使用Automapper。 Automapper可以从IDataReader映射,因此您可以这样做:

Mapper.CreateMap<IDataReader, YourEntity>();
Mapper.Map<IDataReader, IList<YourEntity>>(dataTable.CreateDataReader());

如果您的实体字段与DataTable列匹配,那么这应该是您需要做的所有事情,但如果您需要,Automapper允许更高级的映射配置。