更新edmx模型后,DbContext怎么样?

时间:2013-01-04 16:49:02

标签: c# visual-studio-2010 sql-server-2008-r2 entity-framework-5 dbcontext

我刚开始使用EF5。我创建了一个MSSQL数据库,然后创建了模型(edmx)文件,然后使用“添加代码生成项”来创建EF5 dbcontext类。

每当我改变我的数据库(添加列或更改数据类型)时,我看到“从数据库更新模型”不起作用,我需要删除并重新创建模型。 这对我没问题,但是从DbContext模板文件生成的model.tt类会发生什么?我是否还必须再次生成所有DbContext课程?

使用数据库优先环境的正确方法是什么,并使.edmx模型和DbContext类与数据库保持同步?

3 个答案:

答案 0 :(得分:4)

从数据库更新模型后,尝试Run Custom Tool实体模型,为我工作和测试。

来自Entity Model右键单击运行自定义工具

答案 1 :(得分:1)

我可以看到两种方法:

1)使用EF4方法(也应该可以使用EF5),即使用edmx和数据库第一流。然后,只要您在数据库中进行了更改,就可以从edmx designer context-menu中“从数据库更新模型..”。这会自动更新生成的实体类。

2)使用EF5方法 - 一次生成POCO类,根本不要使用edmx。您可以使用Entity Framework Power Tools执行此操作,然后使用“Reverse Engineer Code First”。在数据库模型更改时手动应用更改(这显然只适用于增量数据库更改)。

答案 2 :(得分:0)

在VS2010中,解决方案资源管理器右上方有一个名为“转换所有模板”的按钮,用于更新生成的类