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

时间:2011-08-10 18:45:03

标签: azure entity-framework-4.1

在首先针对Azure数据库使用实体框架代码时,我不断获得无效的对象名称。这是一个MVC 3项目,我创建了一个模型,然后使用EF和一个新的Context创建了控制器。以下是我为解决此问题而采取的步骤列表。我希望我错过了一些明显的东西。

  1. 下载VS 2010 SP1
  2. 下载EF 4.1
  3. 在Azure中为我的外部IP设置防火墙例外。
  4. 在我的Web.config
  5. 中设置Azure中显示的连接字符串
  6. 关闭防火墙以排除这种情况。
  7. 似乎索引页面正在尝试撤回结果,但解决方案不是创建数据库,因此它没有数据库,并且在执行命令定义时出现错误。任何人吗?

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

你可以尝试一些事情。为了确保您可以创建数据库,显然您的登录需要访问master数据库,并且连接字符串中的PersistSecurityInfo需要为True:

(在底部) http://social.msdn.microsoft.com/Forums/en/adonetefx/thread/1e828c99-66a9-4094-87ec-e799bd619463

其次,如果数据库尚不存在,则需要告诉应用程序创建数据库。在Globals.asax.cs中的Application_Start方法内部,试试这个小片段:

using System.Data.Entity;
...
...
protected void Application_Start() {
   Database.SetInitializer<Models.FunContext>(new CreateDatabaseIfNotExists<Models.FunContext>());
}

希望这有帮助,快乐的编码!