Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Entity framework 实体框架n层解决方案_Entity Framework_Poco_N Tier Architecture - Fatal编程技术网

Entity framework 实体框架n层解决方案

Entity framework 实体框架n层解决方案,entity-framework,poco,n-tier-architecture,Entity Framework,Poco,N Tier Architecture,我正在创建一个新项目,该项目与本示例使用的设计密切相关 我有一个WPF或ASP.NET应用程序,它与WCF服务对话,然后WCF服务将其发送到业务层来完成大部分工作 生成POCO对象,然后将该模板移动到一个模型项目中,该项目将允许我访问业务层和数据层中的这些对象。我的问题是,在这种情况下,数据访问层提供了什么用途?它似乎只保存了.edmx文件 这是一种标准做法,还是通过简单地将.edmx文件放入业务层来提高效率?DAL通常提供模型和数据库表之间的映射。根据您的描述,已将映射零件移动到模型中。但我

我正在创建一个新项目,该项目与本示例使用的设计密切相关

我有一个WPF或ASP.NET应用程序,它与WCF服务对话,然后WCF服务将其发送到业务层来完成大部分工作

生成POCO对象,然后将该模板移动到一个模型项目中,该项目将允许我访问业务层和数据层中的这些对象。我的问题是,在这种情况下,数据访问层提供了什么用途?它似乎只保存了.edmx文件


这是一种标准做法,还是通过简单地将.edmx文件放入业务层来提高效率?

DAL通常提供模型和数据库表之间的映射。根据您的描述,已将映射零件移动到模型中。但我不确定这是一个好的做法。例如,作为数据库表,您还需要更改/构建模型项目。如果您以后决定使用NHibernate而不是EF呢?出于这些原因,我认为映射应该在DAL中,DAL可以是一个单独的项目。

那么您的建议是我省略模型层,而只是从业务逻辑层引用数据层,以便传递POCO对象?或者我的数据层应该包含业务逻辑吗?出于类似的原因,我将BLL和DAL分开。在BLL中,我将使用通用存储库类从DAL获取数据。请原谅我不理解。但是使用存储库类比使用生成的POCO有什么好处呢?我认为最大的好处是独立于任何特定的数据访问方法。如果直接使用POCO上下文,则整个BLL依赖于EF上下文。但当您在BLL中使用存储库接口时,它是免费的。稍后,如果您想使用SQLCE,您可以实现该接口。BLL不依赖于任何数据访问方法。您是否有任何链接指向您正在谈论的示例。我已经看到了大量关于使用存储库接口的信息,但是它们似乎都使用POCO对象——否则,您如何知道返回的是什么对象?