如何在业务层和/或数据层中使用实体框架(Entity Framework)?

3

我希望在我的asp.net应用程序中使用实体框架。

我可以在任何层中使用Linq to entities,但是我想知道应该把实体框架放在哪里?(数据访问层(DAL),业务逻辑层(BAL)还是直接在表示层(Presentation)中使用)。


1
你熟悉ORM(对象关系映射)概念吗? - o.k.w
1
@o.k.w. 是的,但如果我在数据访问层中实现EF,那么我应该创建业务对象并将EF对象转换为BO对象,在BAL和表示层中使用它们吗? - Krunal
@Krunal:虽然我猜Furis已经回答了。 - o.k.w
2个回答

7

EntityFramework 应该放在数据访问层。将其直接暴露给表现层会导致紧密耦合,使得数据库变更会影响到表现层。

在我们的一些项目中,我们使用 EntityFramework 在数据访问层,将实体转换为业务对象(这些对象实际上是简单的 DTO ),因为我们的大部分逻辑都包含在服务中。这种做法不适合每个人,但它符合我们的架构需求。


我应该创建业务对象并将EF对象转换为BO对象,然后在BAL和表示层中使用它们吗?这是唯一的方法吗? - Krunal
1
这不是唯一的方法,但在我看来这是最好的方法。它将帮助您减少耦合,并有助于关注点分离。如果您要在BAL / Presentation层上使用EF对象,那么您会把业务逻辑放在哪里? - AshtonKJ
@Furis - 同意,你能提供一个类的样例代码吗? - Krunal
@Furis - 是的,如果您能用示例代码解释相同的事情,那将很有帮助。 - Krunal
好的,我会准备一个样例稍后发布。 - AshtonKJ
显示剩余2条评论

0

这是我在数据层和业务层中使用的Entity Framework最佳实践之一

1- 在数据层

我们将为所有所需的Entity Framework功能创建一个通用存储库类

2- 在业务层

现在,Entity Framework已经准备好在业务层中使用了


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