我在一家开发非常大规模的基于数据的应用程序的公司工作。该应用程序最初是在大约十年前创建的,因此迫切需要升级。我的任务是调查和实施数据层升级。
目前,它使用的系统具有所有基于/扩展DataRow
对象的业务对象,即 - 每个对象或多或少与数据库中的一行相关。该应用程序目前不是面向对象的,但这会导致很多问题,我们希望朝着 OO 方向发展。
因此,我们希望开始使用 .NET `Entity Framework' 并创建一个 .edmx 文件。这个想法只是将所有 SQL 数据库表拖到 .edmx 设计器上,并让它创建相关的数据对象。
现在在我的脑海中(作为 OO 开发人员),我计划手动创建新的业务对象,并从新数据层中的查询返回的 .edmx 生成的数据对象中填充它们。这将允许使用接口简单地分离各个层。
问题是老板说没有足够的时间来重写大约一百个业务对象类,他建议在整个应用程序中使用 .edmx 生成的数据对象。
我脑海中的每一个念头都在说“不……不要在数据层和整个系统之间建立那种耦合”,但老板说他在网上看到过宣传这一点的文章。
所以我对你们的问题是:(请提供您对 1 和 2 的回答的正当理由)
这是一个可行的解决方案(即使是短期的)?
从生成的数据对象中创建单独的业务对象是否有更好/替代的解决方案?
有没有更好/更简单的方法从生成的数据对象中创建单独的业务对象,而不是手动复制和粘贴?
我知道这些问题有些主观,但我已经提供了尽可能多的具体信息,我真的可以就这个主题提出一些建议。