问题标签 [efpocoadapter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
13992 浏览

entity-framework - DataContractSerializer:如何序列化没有 DataContract/DataMember 属性的类/成员

DataContractSerializer需要用DataContractDataMember属性标记类和成员。但是,在我的情况下,这些类是使用 EFPocoAdapater 框架自动生成的,并且这些属性不存在。

在不存在这些属性的情况下,如何使用 DataContractSerializer 强制对所有成员进行序列化?

来自亚历克斯德:

这在 3.5SP1 中发生了变化,希望您看到: http ://www.pluralsight.com/community/blogs/aaron/archive/2008/05/13/50934.aspx

0 投票
2 回答
3365 浏览

c# - 实体框架外键(或缺少外键)

所以我一直在倾注这段代码,试图弄清楚这一点......我在 .NET 3.5 SP1 中使用 Entity Framework 1.0 和 ASP.NET MVC 和 EFPocoAdapter(所以单独的 Poco 类)。

所以我有以下控制器之一的代码:

编辑现有用户非常完美(注意 id != null)。但是,它是添加新用户的代码部分。它一直有效,直到我到达将 UserCompanyProfile 添加到用户对象的代码部分。如果我将此代码注释掉,它就可以正常工作。当我尝试通过查询数据库将公司附加到 UserCompanyProfile 时出现问题 - 我收到此错误。

顺便说一句,它实际上返回了一个 Company 对象(它的类型是 PocoProxies.CompanyProxy)。任何帮助都将不胜感激!

0 投票
0 回答
169 浏览

entity-framework - EFPocoAdapter -- PopulatePocoEntity 的 PocoEntity 为空

我第一次尝试使用 EFPocoAdapter 进行 EF。我有一个相对简单的 TPH 场景,其中包含一个表和两种类型,每个类型都继承自一个抽象基类。

我的模型通过 EdmGen 进行验证,并且我的 PocoAdapter.cs 和 xxxEntities.cs 文件也可以正常生成。(嗯,实际上,我目前正在手动调整一些命名空间问题,直到我们弄清楚下一步该去哪里。)

当我运行一个简单的测试来检索数据时:

任何人的任何想法?

所以,经过一点调试,我认为这与代理有关。在 PocoAdapterBase 内部,我们有以下方法:

设置 _pocoEntity 的行调用 CreatePocoEntityProxy,它返回 null。

我找到的更多信息。

0 投票
2 回答
297 浏览

c# - 无法使用 EFPocoAdapter 对 Persistence Ignorance (POCO) 类进行预测

给定一个简单的 POCO 类,例如:

当我尝试使用投影到自身的查询时,如下所示:

...我得到:

未处理的异常:System.ArgumentException:“Id”不是“ORMTest1Model.Users”类型的成员

...这来自 System.Linq.Expressions.Expression 的方法 ValidateMemberInitArgs(...) (使用反射器)。

在此方法中,binding.Member.DeclaringType 的类型是 PocoAdapters.UserAdapter 类型(生成的),变量“type”的类型是 User 类型(POCO 类)。

所以......出于某种原因,它把事情搞混了。

有趣的是,如果我创建一个 MyUser 类,它是 poco 类 User 的精确副本,它可以正常工作,并且 ValidateMemberInitArgs(...) 中的两种类型都是 MyUser 类型。

任何人都可以重现该问题并阐明解决方案吗?

谢谢!

(链接到项目讨论列表中的相同问题:http ://code.msdn.microsoft.com/EFPocoAdapter/Thread/View.aspx?ThreadId=2138 )

0 投票
8 回答
23463 浏览

entity-framework - 使用 EF4 的 POCO 模板时“找不到元数据信息”?

我刚刚为 EF4 安装了 POCO 模板。我的模型中有一个实体AnnouncementText,并且 T4 文件似乎已正确生成。当我访问自动生成的属性时,尝试访问这个新实体会引发以下错误MyObjectContext.AnnouncementTexts

InvalidOperationException:找不到实体类型“MyNamespace.AnnouncementText”的映射和元数​​据信息。

POCO上的属性AnnouncementText似乎与数据库中的列匹配,并且我没有更改任何自动生成的代码。

堆栈跟踪是:

如果我.tt从解决方案中删除文件并在模型上启用代码生成,我可以毫无问题地访问该属性。

这是我的代码,以防万一:

关于什么可能是错的任何想法?

0 投票
1 回答
1172 浏览

entity-framework - 我可以从 EF4 的函数导入中获取 POCO 吗?

在 Entity Framework 4 的上下文中,添加函数导入时的默认行为是通过调用它ExecuteFunction<T>()T显然必须实现一些属性更改通知的东西。(在我的例子中,它生成一个从 . 派生的复杂类型ComplexObject。)

我不需要或不想要任何更改通知,并且我需要在这些 sproc 调用之后发送 POCO。

有没有办法直接从 EF sproc 调用中获取 POCO?如果没有,是否有人对将我的 sproc 结果转换为 POCO 有任何建议?

(我已经简单地使用过POCO Template,但它似乎不以任何方式支持存储过程。)

0 投票
1 回答
354 浏览

entity-framework - 模型中具有 POCO 模板和 FK 的实体框架 - 空引用异常

我正在使用 Entity Framework 4 和从 Visual Studio 库下载的 Microsoft 的 POCO 代码生成模板。从数据库生成 EF 模型时,我还选择了“在模型中包含外键”的默认选项。

我已经能够用一个非常简单的模型重现这个问题,只有两个表/类处于可选的一对多关系中。在这种情况下,我使用的是地址和人员。一个人可以有一个或零个地址,一个地址可以有零到多个人。

表格如下所示:

当我尝试创建一个 Address 对象并将其添加到从数据库中提取的现有 Person 对象中时,我得到一个空引用异常:

深入调用堆栈,异常不是从我的代码中抛出,甚至不是模板生成的代码,而是在AddressIDsetter 中 Person 类的运行时动态代理中。(具体来说,System.Data.Objects.EntityEntry.FixupEntityReferenceByForeignKey(EntityReference reference)方法。)

如果我使用默认的 EF 代码生成而不是 POCO 模板,则不会发生此异常。如果我使用 POCO 模板但在从数据库生成模型时取消选中“在模型中包含外键”复选框,也不会发生这种情况。

如果我添加以下内容,我可以让错误消失:

我不明白为什么在与我的持久对象交互时,使用 POCO 模板和在模型中包含外键的组合应该需要这种代码更改。这是一个已知的错误?我错过了什么吗?这是出于某种原因设计的吗?

0 投票
1 回答
327 浏览

entity-framework - EF保存更改突然停止工作

我的 EFv4 POCO 上下文中的 SaveChanges() 突然停止工作。它发出一个错误"Cannot insert NULL value into column 'postalcode' of table Clients"

Cliententity 包含对PostCode(properties postalcode, postname) 实体的引用。PostCode 引用不为空,它的属性也不是。我的Client实体是从Document实体引用的。

这是代码

问题是,AddObject()有效,但 SaveChanges() 失败。我已经检查了 Document 实例、客户端引用和客户端的 PostCode 引用,所有的值都在那里(这也证明延迟加载已经到位并且正在工作)但没有保存。

寻找我可能错过的想法..

0 投票
1 回答
276 浏览

.net - 实体框架 v1 和缓存 POCO 更新

我在 .NET 3.5 应用程序中使用 EF v1 和 Velocity 缓存。我的缓存对象是数据库中实体模型的表示。所以我决定将 EF v1 与 POCO 适配器一起使用。所以有一个实体访问层从缓存中读取对象,如果不存在,则从数据库中读取它并立即缓存它。现在在需要更新的用例中,需要在数据库中更新脏 POCO。现在我不能在这里直接使用 POCO 适配器和代理,因为它们需要一个跟踪更改的支持对象。我从未从框架中对适配器对象进行水合,因此不会发生更改检测。我看到的最简单的选择是:

  1. 更新前阅读实体。从 POCO 设置适配器值。让变更检测顺其自然。这会在每次更新之前进行选择,这可能会给许多关联实体带来高昂的代价。
  2. 创建一个新的实体对象。从 POCO 设置实体键和属性。保存更改。即使没有更改属性/关联实体,这也会进行不必要的写入。

我希望我在问题陈述中很清楚。请建议。

0 投票
1 回答
5156 浏览

entity-framework - 如何使用实体框架 4.1、POCO 和存储库模式设计应用程序

我正在尝试使用 Enterprise Library 4.1 在 ASP.NET MVC 中设计一个应用程序,我添加了实体框架 POCO 模板并将生成的实体移动到一个单独的“实体”项目中。但是,我很难确定设计此应用程序的最佳方式。我假设 ObjectContext 应该与 EDMX 文件在同一个项目中。但是 ObjectContext 必须有权访问 POCO。如果我创建存储库,他们将需要同时访问 POCO 和 ObjectContext。我假设存储库逻辑和 POCO 应该在同一个项目中,但这不起作用,因为“POCO 项目”和“EDMX 项目”之间会有循环引用。我不想将 ObjectContext 放在“POCOs 项目”中

我已经四处寻找示例,但我发现的几乎所有示例都在没有使用最佳实践的情况下将示例放在一起。也许我让这太复杂了。我只是想了解如何最好地设计应用程序。