4

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

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

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

4

3 回答 3

4

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

Entity ModelRight ClickRun Custom Tool

于 2013-01-20T01:37:17.913 回答
1

我可以看到两种方法:

1) 使用 edmx 和数据库优先流的 EF4 方法(EF5 也应该可以)。然后,每当您的数据库发生更改时,您只需从 edmx 设计器上下文菜单中“从数据库更新您的模型..”。这会自动更新您生成的实体类。

2) 使用 EF5 方法 - 一次生成您的 POCO 类,根本不使用 edmx。您可以使用 Entity Framework Power Tools 执行此操作,然后使用“逆向工程师代码优先”。当数据库模型更改时手动将更改应用于您的类(这显然只适用于增量数据库更改)。

于 2013-01-20T01:33:29.250 回答
0

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

于 2013-01-04T17:07:39.187 回答