Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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
.net 4.0 实体框架POCO对象_.net 4.0_C# 4.0_Entity Framework 4 - Fatal编程技术网

.net 4.0 实体框架POCO对象

.net 4.0 实体框架POCO对象,.net-4.0,c#-4.0,entity-framework-4,.net 4.0,C# 4.0,Entity Framework 4,我正在努力理解实体框架和POCO对象。以下是我想要实现的目标 1) 通过让我的业务层使用DAL的接口,将DAL与业务层分离。也许用统一来创造我的环境 2) 在我的DAL中使用实体框架 我有一个域模型,其中的对象驻留在我的业务层中。我还有一个数据库,其中充满了无法真正表示我的域模型的表。我使用ADO.NET POCO生成器扩展设置实体框架并生成POCO对象。这为数据库中的每个表提供了一个对象。现在我想说context.GetAll()并让它返回我的用户对象列表。用户对象位于我的业务层中。可能吗 这

我正在努力理解实体框架和POCO对象。以下是我想要实现的目标

1) 通过让我的业务层使用DAL的接口,将DAL与业务层分离。也许用统一来创造我的环境

2) 在我的DAL中使用实体框架

我有一个域模型,其中的对象驻留在我的业务层中。我还有一个数据库,其中充满了无法真正表示我的域模型的表。我使用ADO.NET POCO生成器扩展设置实体框架并生成POCO对象。这为数据库中的每个表提供了一个对象。现在我想说
context.GetAll()
并让它返回我的用户对象列表。用户对象位于我的业务层中。可能吗

这有意义吗?还是我完全走神了,应该重新开始?我猜我需要使用存储库模式来实现这一点,但我不确定


有人能帮忙吗?

通常,使用EF,将上下文中的所有对象作为
列表获取的方法如下:

context.Users.ToList();

但由于
用户
在您的上下文中无论如何都是一个IEnumerable,因此您可以直接在
上下文中执行几乎任何类型的迭代或查询。用户

示例如何按复杂性顺序将实体框架4置于n层体系结构中:


  • 检查我的答案(在最后的链接中),看看它是否有助于DAL/BLL方面。您的上下文应该有一个复数形式的用户(例如用户),您可以使用它来延迟加载它们。我读了你的帖子,我想我开始明白了…EF创建的POCO对象是用来传递的?我不了解的部分是,如果我在业务层中使用域模型模式,那么当POCO对象表示数据库中的表时,我如何使用它们?好的,但是我如何让EF ObjectContext了解我的用户域对象,然后让它从数据库表中创建的POCO填充我的用户对象?它已经创建了一个名为TBL_USER的POCO,但我不想使用该对象,我希望能够在我的业务层中使用我的用户对象。@Dan,可能有一些框架可以为您这样做,但如果是这样,我对任何框架都不熟悉。基于此,我将在我的用户类型上创建一个方法,该方法接受TBL_user的对象并转换为您的BL类型。用创建的对象填充列表。不过,我不确定这是最好的答案。如果您已经从DB移动到实体POCO对象,您可能需要查看您的问题空间,以确保您确实需要一个额外的业务对象…我不确定现在是否需要额外的业务对象。但是我仍然有EF创建POCO对象的问题,它们反映了我数据库中的表,我希望我的业务对象反映我的域模型。知道我的意思吗?也许我需要仔细看看,看看POCO是如何创建的,看看它们是否可以工作。