entity-framework-4.1 - SQL Code First DB - 创建表,而不是删除/创建

标签 entity-framework-4.1 ef-code-first azure-sql-database

我正在尝试在 Azure 试验中启动 MVC 3 部署,但似乎在让 EF4.1 数据库自行创建时遇到了障碍。

运行时会连接成功,但是报错:

Invalid object name 'dbo.TableName'.

我相信这是因为数据库存在,但其中没有表。我已经能够在本地重现它 - 如果我删除我的 SQL Express 数据库,数据库娱乐工作正常,但如果我然后删除所有表并离开数据库则不行。

我已经阅读了可以添加到 Global.asax 的方法:
protected void Application_Start()
{
    // Use any of:
    System.Data.Entity.Database.SetInitializer<MyDatabaseContext>(new DropCreateDatabaseIfModelChanges<MyDatabaseContext>());
    System.Data.Entity.Database.SetInitializer<MyDatabaseContext>(new CreateDatabaseIfNotExists<MyDatabaseContext>());
    System.Data.Entity.Database.SetInitializer<MyDatabaseContext>(new DropCreateDatabaseAlways<MyDatabaseContext>());
}

......这似乎不起作用。有些给出了关于无法在 EdmMetadata 表中获取模型哈希的错误。

如何让 EF4.1/Code First 在现有数据库中创建数据库结构? (在 Azure 中...)。或者我是否必须从 SQL Management Studio 编写 DB 脚本,然后针对目标 DB 运行它?

最佳答案

查看 David.Cline(开发)博客“在模型更改时删除和创建表”:

http://www.davidcline.info/2012/05/technologies-c-v4.html

这个链接可能会有所帮助:

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

谢谢,
哈恰图尔

关于entity-framework-4.1 - SQL Code First DB - 创建表,而不是删除/创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7395098/

相关文章:

c# - SP 在 EF 5 CF 中有多个结果

sql-server - 将数千行数据插入 Azure SQL DB 的最高效方法?

entity-framework - 我不需要/想要 key !

.net - 我可以在 Entity Framework Code First 中禁用自动关系吗?

c# - 为什么 edmx 图不创建数据注释

c# - 什么是 modelBuilder.entity(Of x)

asp.net-mvc-3 - EF Code First 有人有可能的 DataAnnotations 列表吗?

c# - Entity Framework 可扩展框架

Azure:如何将数据库移至弹性池

azure-sql-database - 如何在 SSMS 中查看 Azure 表数据