【问题标题】:CodeFirst cannot create database on shared hostingCodeFirst 无法在共享主机上创建数据库
【发布时间】:2013-03-23 15:34:29
【问题描述】:

我想将 Entity Framework 5.0 部署到共享主机。

现在我遇到了数据库问题。我无法创建数据库。

<add name="ResContext" 
connectionString="Data Source=XXXX5.db.10232343.hostedresource.com;
Initial Catalog=XXXX5; User ID=XXXX5;
Password=XXXXXXXXX!;Integrated Security=false"
providerName="System.Data.SqlClient"></add>

首先 providerName="System.Data.SqlClient"

我有问题

无法删除数据库“XXXX5”,因为它不存在或您没有权限。

但是当我将 providerName 更改为

providerName="System.Data.EntityClient"

不支持关键字:“数据源”。

【问题讨论】:

  • 您何时/何处看到它?它在调试器中吗?
  • @Pawel 是的,它在调试器中。我在 localMachine 上运行它来测试它是否有效

标签: c# asp.net-mvc entity-framework sql-server-2008


【解决方案1】:

通常,GoDaddy 不会授予您以编程方式创建或删除数据库的权限。它们只允许您通过其用户界面创建这些数据库。这是因为他们不希望人们到处创建数据库,他们希望确保只有您有权在共享用户环境中访问数据库。

因此您不能使用 EF 使用的默认生成方法。相反,您将使用数据库初始化程序:

Database.SetInitializer<YourContextType>(null);

【讨论】:

    【解决方案2】:

    您可能已打开异常中断。应该处理此异常,您应该可以按 F5 继续。您可能会看到一些(大约 5 个)这样的异常。这就是 EF 检测您要使用的数据库是否存在、是否为最新等的方式。您也可以更改设置 - 转到“调试 -> 异常...”并取消选中“ “Common Language Runtime Exceptions”行中的 Throwned”列。

    【讨论】:

    • 在调试器设置中启用“Just My Code”应该隐藏在其他库中抛出(并在获取您的代码之前捕获)的这些异常。
    猜你喜欢
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 2020-01-01
    • 2016-04-01
    • 1970-01-01
    相关资源
    最近更新 更多