Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在业务层和/或数据层使用实体框架?_C#_Asp.net_Entity Framework - Fatal编程技术网

C# 如何在业务层和/或数据层使用实体框架?

C# 如何在业务层和/或数据层使用实体框架?,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我想在asp.net应用程序中使用实体框架 我可以在任何层中使用Linq转换实体,但我想知道我应该把实体框架放在哪里?(DAL、BAL或在演示文稿中直接使用)。EntityFramework应位于数据访问层。要将其公开到表示层,请将您的表示与数据库紧密耦合,从而允许数据库级别的更改向上流动到表示层 我们在一些项目中所做的是在DAL中使用实体框架,将实体转换为我们的业务对象(实际上,这是一个非常简单的对象,主要用作DTO,因为我们的大多数逻辑都包含在作用于对象的服务中-这条路线并不适合所有人,但它

我想在asp.net应用程序中使用实体框架


我可以在任何层中使用Linq转换实体,但我想知道我应该把实体框架放在哪里?(DAL、BAL或在演示文稿中直接使用)。

EntityFramework应位于数据访问层。要将其公开到表示层,请将您的表示与数据库紧密耦合,从而允许数据库级别的更改向上流动到表示层


我们在一些项目中所做的是在DAL中使用实体框架,将实体转换为我们的业务对象(实际上,这是一个非常简单的对象,主要用作DTO,因为我们的大多数逻辑都包含在作用于对象的服务中-这条路线并不适合所有人,但它符合architecht的要求)

这是我在数据层和业务层中用于实体框架的最佳实践之一

1-在数据层中

我们将为所有必需的实体框架功能创建一个通用存储库类

2-在业务层中


现在实体框架已经可以在业务层中使用了

那么您熟悉ORM概念吗?@o.k.w.是的,但是如果我在DAL中实现EF,我应该创建业务对象并将EF对象转换为BO对象,然后在BAL和表示层中使用它们吗?@Krunal:我想Furis已经回答了。我应该创建业务对象并将EF对象转换为BO对象,然后在BAL和表示层中使用它们吗?这是唯一的办法吗?这不是唯一的办法,但在我看来这是最好的办法。它将帮助您减少耦合,以及帮助分离关注点。如果您要在BAL/表示层上使用EF对象,您将把业务逻辑放在哪里?@Furis-同意,您可以为一个类提供一些示例代码。您希望示例代码的哪一部分?到业务对象的转换?@Furis-是的,如果您用示例代码解释同样的事情,那将很有帮助。