EF 6,从数据库更新模型不支持对象上下文? (注意:这是一个提问标题,无需回答。)

5
我们有一个相当复杂的数据模型,它是从现有的数据库构建而成,并使用部分类来支持附加方法和属性、继承等。我们还没有决定将其从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是正确的选择,但希望暂时避免这样做。

1
代码生成样式是否设置为T4(这将使用您的实体对象生成器)? - Claies
这是一个有趣的问题。在执行“从数据库更新模型”之前,作为准备工作,我将EF6实体对象代码生成项添加到模型中,删除“.Designer.cs”文件(似乎复制了新代码生成项生成的代码(在EF5模式下)。我也可以将代码生成样式设置为Legacy ObjectContext,并且项目按预期构建。 - grstpoh
一旦从数据库更新模型被执行,dbcontext项将自动添加到项目中,代码生成样式将更改为T4,并变灰。因此,这确实是一个奇怪的问题。 - grstpoh
我也有这个问题。虽然我现在不需要从数据库更新我的模型,但这肯定是令人担忧的,会使数据库更新变得非常繁琐。 - vinczemarton
请注意,在EF7中,ObjectContext将被删除。 - Max Bündchen
1个回答

0

我的经验是通过双击打开Visual Studio中的edmx文件,然后选择所有表格执行完全删除(按下del键)。然后点击菜单栏顶部的保存按钮,它应该自动删除所有模型。

完成后,您可以再次从数据库更新模型。

希望这能帮到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接