繁体   English   中英

需要自我跟踪实体和POCO解释

[英]Self-Tracking Entities and POCO explanation needed

我认为我了解的内容(如果我写错了,请纠正我)

  • POCO-普通的旧C#对象。 它们是不从任何东西继承的简单类?
  • STE-自我跟踪实体。 它们跟踪单个实体对象上的更改,以便我们执行context.SaveChanges(); 实体对象上的更改已注册。 这不适用于收藏吗?

我想知道什么?

  • 如果我的上下文继承自ObjectContext,这是否意味着我有POCO或STE? 同样,DbContext是POCO还是STE?
  • EF5默认生成什么? POCO实体还是STE? (我正在使用Model First)

也有人可以给我一些代表这两种类型实体的代码示例吗?

如果我的上下文继承自ObjectContext,这是否意味着我有POCO或STE? 同样,DbContext是POCO还是STE?

如果上下文是从ObjectContext类继承的,那么您可能是STE和DbContext针对POCO起作用。 这里

EF5默认生成什么(模型优先)? POCO实体还是STE?

模型首先,POCO和STE是3 种不同的东西。 在Entity Framework中,您可以自由选择适合您需求的最佳方法。

它可能是:

  • 代码优先
  • 模型的第一
  • 数据库第一

POCO-普通的旧CLR对象是“干净”类,不散布数据库访问功能等,因此被视为持久性无知实体。

STE-充分了解其持久性机制并被视为感知持久性的自我跟踪实体。

更新:如果您使用的是“模型优先”方法,并且想要将实体(STE)转换为POCO,则可以使用EF 5.x DbContext Fluent Generator for C#

默认情况下,IDE数据设计器会创建一个.edmx文件,该文件在Visual Studio的早期版本(2008和2010)中默认使用t4模板(默认情况下会生成STE)以及从对象上下文派生的上下文。 在VS 2012中,已将其更改为默认情况下使用从DbContext派生的上下文生成POCO。

您可以通过使用NuGet下载新的代码生成器来更改此行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM