C# 维护网站的在线(Azure)和离线版本

C# 维护网站的在线(Azure)和离线版本,c#,database,azure,ef-code-first,code-first,C#,Database,Azure,Ef Code First,Code First,注意:不确定问题的提出方式是否正确。这就是我对问题的看法,但问题完全有可能是从一个完全不同的角度来解决的,由于无知,我没有意识到这一点 问题 是否有一个内置数据库可用于开箱即用的MVC解决方案?如果是,我如何找到它的连接字符串 当前的字符串是针对Azure的,看起来是这样的(坦白地说,它吓坏了我,因为我不理解它的大部分内容) 背景信息 我正在开发一个网站并将其发布到Azure。它与数据库有一些连接,我使用的是代码优先和实体框架。一切都很好(可能除了在显示之前上传和初始化页面需要几秒钟,如果我

注意:不确定问题的提出方式是否正确。这就是我对问题的看法,但问题完全有可能是从一个完全不同的角度来解决的,由于无知,我没有意识到这一点

问题
是否有一个内置数据库可用于开箱即用的MVC解决方案?如果是,我如何找到它的连接字符串

当前的字符串是针对Azure的,看起来是这样的(坦白地说,它吓坏了我,因为我不理解它的大部分内容)


背景信息
我正在开发一个网站并将其发布到Azure。它与数据库有一些连接,我使用的是代码优先和实体框架。一切都很好(可能除了在显示之前上传和初始化页面需要几秒钟,如果我只对Razor的标记进行了更改,这会很烦人)

事实上,所有的设置几乎都是自动设置的,我根本不需要配置太多。现在,由于以下原因,它正在咬我的坐姿装置

我需要能够在本地主机上运行我的站点(使用F5,如果你愿意的话),因为我将离线(或者至少在非常糟糕的连接下)。我现在就可以这样做,除了联系数据库引用的页面之外,在这里我得到了下面的错误

我明白了问题所在-没有先使用代码设置本地数据库。我想知道是否有懒人的解决方案(首先使用一些内置的DB和代码)。如果是,我在哪里设置?我更喜欢保持对默认连接字符串的引用尽可能完整,但是如果我需要编辑它(或者,很可能,添加一个新的并引用它),我如何学习正确的连接字符串?!(是的,我知道,这是我为让Azure为我配置一切而付出的代价。羞愧地低下头。)

{“无法检查模型兼容性,因为数据库不包含模型元数据。只能对使用代码优先或代码优先迁移创建的数据库检查模型兼容性。”}


据我所知,这不是SQLAzure的连接字符串,而是本地(开发)数据库的连接字符串。它将在您的App_数据文件夹中创建一个.mdf文件。您可以在Azure仪表板的某个位置找到到SQL Azure的连接字符串。我在开发和生产之间切换,例如:

    public MyContext : DbContext
    {
      public MyContext()
#if DEBUG
          : base("development")
#else
          : base("production")
#endif
      {
      }
    }
但是,您也可以使用
web.config
web.debug.config
web.release.config
的XML转换。请注意,当您在本地运行应用程序时,
web.debug.config
并不是真正使用的,因此请将您的开发连接字符串放入
web.config
并以发布模式发布应用程序,以便进行
web.release.config
的XML转换

编辑:获取SQL Azure连接字符串

进入管理门户并单击SQL数据库。单击数据库并转到仪表板。在右侧,您会看到“显示连接字符串”。它看起来像这样:

Server=tcp:xxx.database.windows.net,1433;Database={your_db_name};User ID={your_user_id};Password={your_password_here};Trusted_Connection=False;Encrypt=True;Connection Timeout=30;

实际上,我从Azure门户获取了连接字符串。这就是为什么我认为它是“蓝色的”。可能是因为我的站点(上传到Azure)和数据库都位于云中的同一台服务器上?我怎样才能找到我在Azure上拥有的DB的连接字符串?(正如我所提到的——这里显示的是我从那里得到的,但可能我看错了地方…@KonradViltersten我用有关SQL Azure连接字符串的信息修改了我的答案。
Server=tcp:xxx.database.windows.net,1433;Database={your_db_name};User ID={your_user_id};Password={your_password_here};Trusted_Connection=False;Encrypt=True;Connection Timeout=30;