我刚开始使用EF5。我创建了一个MSSQL数据库,然后创建了模型(edmx)文件,然后使用“添加代码生成项”来创建EF5 dbcontext
类。
每当我改变我的数据库(添加列或更改数据类型)时,我看到“从数据库更新模型”不起作用,我需要删除并重新创建模型。
这对我没问题,但是从DbContext
模板文件生成的model.tt
类会发生什么?我是否还必须再次生成所有DbContext
课程?
使用数据库优先环境的正确方法是什么,并使.edmx
模型和DbContext
类与数据库保持同步?
答案 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中,解决方案资源管理器右上方有一个名为“转换所有模板”的按钮,用于更新生成的类