在Azure上首先使用EF代码创建数据库时出错

在Azure上首先使用EF代码创建数据库时出错,azure,entity-framework-4.1,Azure,Entity Framework 4.1,在尝试首先对Azure数据库使用实体框架代码时,我总是得到一个无效的对象名。这是一个MVC3项目,我在其中创建了一个模型,然后使用EF和一个新上下文创建了控制器。下面是我为解决这个问题所采取的步骤列表。我希望我错过了一些明显的东西 下载VS2010SP1 下载EF4.1 在Azure中为我的外部IP设置防火墙例外 在my Web.config中设置Azure中显示的连接字符串 关闭防火墙以排除此情况 似乎索引页正在尝试回调结果,但解决方案没有按其应有的方式创建数据库,因此没有数据库,并且在执行命

在尝试首先对Azure数据库使用实体框架代码时,我总是得到一个无效的对象名。这是一个MVC3项目,我在其中创建了一个模型,然后使用EF和一个新上下文创建了控制器。下面是我为解决这个问题所采取的步骤列表。我希望我错过了一些明显的东西

  • 下载VS2010SP1
  • 下载EF4.1
  • 在Azure中为我的外部IP设置防火墙例外
  • 在my Web.config中设置Azure中显示的连接字符串
  • 关闭防火墙以排除此情况

  • 似乎索引页正在尝试回调结果,但解决方案没有按其应有的方式创建数据库,因此没有数据库,并且在执行命令定义时出现错误。有人吗?

    有几件事你可以试试。为了确保您可以创建数据库,显然您的登录需要访问主数据库,并且连接字符串中的PersistSecurityInfo必须为True:

    (在底部)

    其次,如果数据库不存在,您需要告诉应用程序创建数据库。在Globals.asax.cs中的应用程序启动方法中,尝试以下小片段:

    using System.Data.Entity;
    ...
    ...
    protected void Application_Start() {
       Database.SetInitializer<Models.FunContext>(new CreateDatabaseIfNotExists<Models.FunContext>());
    }
    
    使用System.Data.Entity;
    ...
    ...
    受保护的无效应用程序\u Start(){
    SetInitializer(新的CreateDatabaseIfNotExists());
    }
    

    希望这有帮助,快乐编码

    我们发现SQL Azure数据库不存在很重要。即使我们有一个完全空的数据库,EF代码优先也会失败


    尝试让EF完全从头开始创建数据库

    您是否在本地数据库中尝试过代码?将连接字符串更改为本地数据库,并检查数据库是否已创建。如果它没有被创建,那么你知道错误在你的EF代码中。是的,当我最终发现这一点时,我就像Doh!谢谢你知道为什么它不存在吗?由于SQL Azure中的某些限制?它应该是一个受支持的场景,至少在Azure之外,对吗?