【发布时间】:2013-12-27 19:32:01
【问题描述】:
我们从现有数据库构建了一个相当精细的数据模型,然后使用部分类进行了增强,以支持其他方法和属性、继承等。我们还没有硬着头皮将它从 ObjectContext 更新为 DbContext。
我正在使用 VS2012、.net 4.5、EF 6.0.2,并已安装 VS2012 的 EF 6.0.2 工具。
按照推荐的机制将项目更新到 EF6 (http://msdn.microsoft.com/en-us/data/dn469466) 已成功,包括添加 EF 6 实体对象生成器作为代码生成项。
在进行此更改后,我想从数据库中更新模型,以将最近的一些架构更改合并到模型中。运行“从数据库更新模型”对话框,似乎正在发生的事情是,除了项目中已经存在的基于对象上下文的模型之外,一个全新的基于 dbcontext 的模型和模板被添加到项目中,并且没有任何更改被合并到实体对象模板中。
当然,这意味着一旦操作完成,项目中就会定义数百个重复名称。 edmx 属性似乎没有可以控制此行为的选项。
当然,最终过渡到 dbcontext 是正确的途径,但希望避免立即采取这种做法。
【问题讨论】:
-
代码生成样式是否设置为 T4(这将使用您的实体对象生成器)?
-
这是一个有趣的问题。在执行“从数据库更新模型”之前,作为准备工作的一部分,我将 EF6 实体对象代码生成项添加到模型中,删除“.Designer.cs”文件(它看似复制(在 EF5 模式下)生成的代码)新的代码生成项。我也可以将代码生成样式设置为 Legacy ObjectContext,项目按预期构建。
-
从数据库更新模型执行后,dbcontext项会自动添加到项目中,代码生成样式更改为T4,并显示为灰色。所以,这确实是一个奇怪的交易。
-
我也有这个问题。我不需要从数据库更新我的模型 YET,但这肯定是令人担忧的,并且会使数据库更新非常乏味。
-
请注意,在路线图中,EF7 中将删除 ObjectContext。
标签: c# .net entity-framework visual-studio-2012