2012-08-03 71 views
3

我在我的web应用程序中解除实体框架。早些时候一切工作正常。但后来我从Sql Server中删除了数据库。之后,每当我运行应用程序,我得到以下异常:底层提供者在开放实体框架上失败

The underlying provider failed on open entity framework 

是不是真的,如果我们删除从SQL Server数据库中,并再次运行应用程序,数据库再次创造的呢?

回答

3

你可以显示一些关于连接字符串的细节。我基本上想检查您正在使用的身份验证。 设置典型认证的演示:http://msdn.microsoft.com/en-us/library/ff649314.aspx

另一种可能性是连接池。尝试显式关闭的连接(如果有任何打开的连接)

db.Database.Connection.Close(); 
3

实体框架将重新创建的应用程序数据库开始假设如下:

  • 你有权限在SQL
  • 连接字符串正确指定(创建数据库,如果它是之前的工作,这应该是罚款)
  • 您正在使用的数据库CodeFirst或ModelFirst策略(即如果你生成的EDMX关闭现有的数据库,它不会重新创建它你)
+0

这三点都是真的。我正在使用代码第一个战略。 – Nitish 2012-08-03 10:30:10

+0

您收到的错误通常与基于权限或连接的问题有关。我会建议在天气情况下进行故障排除,运行应用程序的用户(或conn字符串)可以访问和创建数据库。尝试使用这些凭据手动执行此操作。 – 2012-08-03 10:36:22

+0

手动你的意思是在Sql服务器上? – Nitish 2012-08-03 10:37:38

0

我有一个类似的错误,这是由于连接问题。 通常您需要在您的实体(EDML)下打开* .EDPS文件并检查连接字符串,并确保它具有正确的设置,尤其是默认的Oracle主目录。

相关问题