在业务逻辑层中使用Entity Framework生成的类

7

我有一个使用三层架构的ASP.NET (C#)项目。在DAL中,我开始使用Entity Framework,问题是生成的Entity Framework类在业务逻辑层中可以使用到什么程度?

直接使用它们是否是个好主意,还是应该创建自己的业务对象并从Entity Framework进行映射(db->O/RM->BOs)?


抱歉在原帖后回复了12年。但是...你如何在业务逻辑层类中实现构造函数? - rasputino
4个回答

5
在我看来,EF对象将映射到您的对象。这会增加开发成本,但带来了持久性无知和解耦的附加好处。这种解耦可以转化为在长期运行中的重大敏捷性和现实世界的节省,如果业务需要切换到不同的持久性解决方案。如果没有解耦,EF对象可能会深度嵌入BLL甚至展示层,需要进行巨大的重构。在这种情况下,业务可能甚至不考虑切换持久性解决方案,这可能导致业务竞争力较弱。
以更高的开发成本换取这种好处的决定取决于业务愿意承担的风险量。我建议您与项目委员会商讨,并根据他们的战略目标以技术方式解释其最佳判断。

2
EF生成的类旨在可扩展且可用作业务对象。如果您不喜欢它,您应该更改ORM或等待仅使用代码的EF 4。添加其他对象感觉不太对。首先是数据库,然后是ORM类,然后是BO,最后是视图模型。看起来有点过于繁琐了。 - LukLed

2

生成的类作为您的业务对象使用应该是合理的。生成的类是partial类型,因此您可以根据需要轻松扩展它们。但有时我认为使用接口更好。


1

我刚开始使用 EF 2.0(在 .Net 4.0 beta 2 中),它具有使用 POCO 类作为 EF 实体的功能。也就是说,你现在可以在 EF 2 中使用持久化无知类。

我认为这还没有完全准备好,因为在使用 Visual Studio 2010 beta 2 进行工作时,我无法遵循 PDC 2009 的演示,但请继续关注 ADO.Net 团队博客,以获取更多信息。


0

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