代码优先与现有的空数据库

时间:2012-03-20 23:35:15

标签: entity-framework entity-framework-4.1

我正在做一个项目,我将使用Entity Framework 4.1。我正在计划采用“Code-First”方法,因为我喜欢干净的实体,我想以某种方式扩展它们。

我有一个现有的空数据库,我想使用它。我已经设置了连接字符串,如下所示,我已将EF设置为始终删除并创建数据库(以开始)。这是我的问题。

我可以访问这个空数据库,但我无权删除它和/或创建它。数据库已经可以使用了。如何让EF按原样使用数据库,而不是删除并创建它?

顺便说一句,如果我没有将它设置为drop并创建,它会抱怨它找不到表,这是可以理解的。

1 个答案:

答案 0 :(得分:2)

为了将EF Code First与现有的空DB一起使用,您需要使用自定义数据库初始化程序,它不会重新创建数据库而只会重新创建表,幸运的是有人已经这样做了:

http://blogs.microsoft.co.il/blogs/gilf/archive/2011/05/30/creating-a-code-first-database-initializer-strategy.aspx

您还应该看看EF 4.3的新数据库迁移功能,这在您的架构发展过程中变得非常重要。