1

背景资料

我在网络托管服务器上购买了 1.5 GB 的数据库。它只给了我访问数据库的权限。

问题

数据库连接错误

你可能看不懂汉字,但你知道最后一句的意思,这就是这个错误的关键所在。

原因

这发生在 EF 尝试从 Web 服务器检索数据库信息时。如您所见,它试图从主数据库和 INFORMATION_SCHEMA.TABLES 视图中获取表的信息。这是导致此问题的原因,因为我没有被授予访问该数据库的权限。

所以我希望我清楚地解释了这个问题。

解决方法

我找到了解决它的方法。使用完全相同的数据库结构(相同的表、相同的列等)在您自己的本地数据库上创建 EF,然后将 connectionString 更改为指向 Web 服务器。

问题

每当数据库发生更改并且您想要更新 EF DataContext 结构时,它总是会转到主数据库和该视图以获取信息,因此您必须来回更改 connectionString。它变得微不足道。

问题

还有其他方法吗?我发现 LINQ2SQL 没有这个问题,因为它不会自动从数据库中检索信息。相反,用户必须拖动他们想要使用的表格。

我期待着任何精彩的答案。

干杯

4

1 回答 1

1

您应该始终针对本地数据库进行开发,并且仅在部署到生产服务器时将连接字符串更改为数据库。没有更好的方法来做到这一点。

EF首先使用数据库时依赖于从主数据库读取的权限,目前没有办法避免它。昨天甚至在 Data UserVoice 上针对这个问题提出了建议。

于 2012-08-30T08:15:12.603 回答