实体框架代码首先使用现有数据库

Posted

技术标签:

【中文标题】实体框架代码首先使用现有数据库【英文标题】:entity framework code first using existing database 【发布时间】:2016-06-15 18:44:50 【问题描述】:

我已经开始学习实体框架并且遇到了问题。我已经创建了一个代码优先 mvc 项目,并且我不想在模型更改时删除数据库。除了 DropCreateDatabaseIfModelChanges 在我的初始化程序类中,我还能做什么,以便数据库和表与数据保持一致?

【问题讨论】:

学习更多 :) 你可以切换到 DB First Approach(EDMX 文件)或在代码中使用migrations 【参考方案1】:

您根本不需要使用初始化程序。这是有效的:

Database.SetInitializer<YourContext>(null);

并在你的配置文件中设置AutomaticMigrationsEnabled = false;

然后您可以自己进行迁移。

【讨论】:

实际上,不需要禁用迁移。因为 Context 没有初始化器,因此不会验证模型,它永远不会尝试创建到当前模型的迁移。 @DevilSuichiro,感谢您提供的信息,我实际上并没有意识到这一点。

以上是关于实体框架代码首先使用现有数据库的主要内容,如果未能解决你的问题,请参考以下文章

实体框架代码优先现有数据库和新数据库维护

在实体框架中使用存储过程

在现有 SQL Server 数据库上使用实体框架时禁用 VARCHAR 和 NVARCHAR 之间的转换

实体框架数据库首先是多个模式重复的表名

为啥在更新现有实体时会出现重复的实体?

如何在现有远程数据库中添加表并将其链接到实体框架模型?