迁移:从 DataSets 到 EntityFramework

7

我目前正在研究我们可以重构代码库的可能方法,以使其更易于使用。

该应用程序是一个相当大的Asp.Net Webforms应用程序,所有数据设置/检索都通过Web服务进行。目前,这些Web服务返回包含从存储过程返回的1个或多个表的数据集。代码库非常紧密连接,ASP代码后台在多个地方调用Web服务,并且大部分业务逻辑都在代码后台或存储过程中发生。

一段时间以来,我们一直在寻找更新应用程序和现代化代码库的可能方法。我们不能(也不想)重新编写整个应用程序,但如果我们能够逐步将其移动到较新的架构上,那将是很好的。我已经研究了MVP体系结构,它似乎非常适合我们当前的架构——它不需要太多的重写,但应该仍然会产生更可测试的代码(另一个目标——我们目前没有自动化测试)。

我想知道是否有关于从DataSets迁移到EntityFramework的技巧/信息/文章。我觉得这将为我们带来最大的优势,因为它可以让我们更轻松地建模和测试数据。不幸的是,我还没有找到任何关于这种迁移的在线资源。我们的数据库设计相当不错(谢天谢地),但在摆脱DataSets之前,我们需要一段时间同时使用DataSets和EntityFramework - 我们无法一次性完成。有人能提供建议吗?

1
你会继续使用 WebServices 来返回当前以 DataSet 形式存在的数据吗?还是你的应用将直接通过 EntityFramework 触及数据库? - John Fisher
@John 我认为我们仍然需要以某种方式使用Web服务。我们在Microsoft InfoPath中使用相同的Web服务来检索数据,而我们还不能摆脱它。 - a_m0d
1个回答

4
听起来你需要解决两个不同的问题。
1. 如何在 web 服务中使用 EntityFramework。 2. 其次,如何在 web 服务之间传递这些结果。
对于第一点,我们只能猜测你当前实现的相关细节。但是,你可以搜索并找到相关帮助,因为这通常是一个常见的更改。
对于第二点,你可能想要定义一系列业务对象来回传递。Web 服务可以在它们之间和 EntityFramework 对象之间进行翻译。(你可以直接传递 EF 对象,但根据你的情况可能会出现问题。)

我很好奇你所说的“业务对象”是指什么。你是指将其序列化为XML / JSON,还是指其他内容? - a_m0d
@a_m0d:“业务对象”只是具有属性的类。它们的传输方式(XML、JSON等)是完全不同的问题。 - John Fisher
一个业务对象和一个POCO类有什么不同? - a_m0d
@a_m0d:POCO(普通的C#对象)可以有任何目的。业务对象有一个保存业务数据并在实现业务规则的例程中使用的目的。(所以,两者之间没有太大的区别。) - John Fisher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接