【发布时间】:2011-09-23 07:22:58
【问题描述】:
我是一名 .NET 开发人员,作为重构项目的一部分,我有几个问题。
我们的软件目前使用 Active Record 模式(数据对象和业务对象之间的一对一映射)。不好的是业务对象继承自数据对象,导致层间高度耦合。
我们的目标是从我们的自定义数据访问层(基于 ADO.NET)切换到实体框架。我们的限制是不要破坏代码,以便我们的旧应用程序仍然可以使用旧数据访问层编译和运行,同时允许我们将 EF 用于新项目。
我这样做的第一个想法是打破继承并将数据对象作为业务对象的属性(并使用接口或抽象类来注入数据对象,无论是我们的自定义层还是实体框架)。属性将从数据对象迁移到业务对象,业务对象就像某种“代理”来访问数据对象的属性。
这是一个可行的解决方案吗?那仍然会使用活动记录模式(我不太喜欢这个,因为我们的业务层已经变得很大了)所以如果您有任何其他想法,请不要犹豫。
我的另一个问题是关于实体框架的生成。我们需要实体属性与旧数据对象同名(我们将使用抽象类以允许业务对象调用数据对象的属性,无论是我们的自定义数据对象还是 EF 实体) .实现这一目标的最佳方法是什么?使用 T4 生成实体还是采用 EF 代码优先方法?
我对任何建议都持开放态度,因此请不要犹豫提出其他方法。感谢您的宝贵时间。
【问题讨论】:
标签: .net entity-framework activerecord migration