实体框架是否使用默认的初始目录以及它做出了哪些假设?

时间:2011-05-07 11:33:43

标签: entity-framework sql-server-2008 connection-string

我在新的EF项目中做了(几乎所有)一切正确,但我忘了在EF上下文类中使用命名连接字符串,因此,它使用了默认值。

它在SQL Express默认数据目录中创建了一个新数据库,并且运行正常。

当我意识到我的错误(在想知道为什么没有文件出现在app_data文件夹中)之后,我重命名该类以使用命名连接字符串,然后我不断收到以下错误:

  

无法完成操作。该   提供的SqlConnection没有   指定初始目录。

我知道如何解决这个问题,但是EF对我来说就像魔术一样!我无法相信它的工作原理和它一样好,我只是好奇它默认使用什么/如果你没有指定什么,那么EF会代表你使用哪些“假设”?

2 个答案:

答案 0 :(得分:4)

默认情况下,它使用与您的上下文同名的数据库,但是一旦指定了自定义命名连接字符串,您必须通过Initial CatalogDatabase参数提供已使用数据库的名称。

答案 1 :(得分:4)

我遇到了同样的问题,但我通过更改web.conf来解决这个问题。您需要指定初始目录和集成安全性并创建用户实例。

这是在运行web.conf:

add name="MovieDBContext"
   connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Movies.mdf;Initial Catalog=Movies;Integrated Security=SSPI;User Instance=true"
   providerName="System.Data.SqlClient"
相关问题