我认为我理解(如果我错了,请纠正我)
context.SaveChanges();
时注册实体对象的更改。这对集合不起作用吗?我想知道什么?
还有人可以给我一些代表这两种实体的代码示例吗?
答案 0 :(得分:2)
如果我的上下文继承自ObjectContext,那是否意味着我有POCO 还是STE?同样,是DbContext POCO还是STE?
如果你的上下文继承自ObjectContext
类,那么你可能有STE和DbContext
对抗POCO。看here。
默认情况下EF5会生成什么(模型优先)? POCO实体还是STE?
模型首先,POCO和STE是3个不同的事物。在实体框架中,您可以自由选择符合您需求的最佳方法。
可能是:
POCO - 普通的旧CLR对象是“干净的”类,没有穿插数据库访问功能等,被视为持久性无知实体。
STE - 自我跟踪实体,他们充分了解其持久性机制并被视为知晓持久性。
<强>更新强> 如果您正在使用Model-First方法并希望将实体(STE)转换为POCO,则可以使用EF 5.x DbContext Fluent Generator for C#
答案 1 :(得分:2)
默认情况下,IDE数据设计器会创建一个.edmx文件,默认情况下,在早期版本的Visual Studio(2008和2010)中使用t4模板,默认情况下生成STE,以及派生自Object Context的上下文。在VS 2012中,默认情况下将其更改为生成POCO,其中包含源自DbContext的上下文。
您可以使用NuGet下载新的代码生成器来更改此行为。