我在新的EF项目中做了(几乎所有)一切正确,但我忘了在EF上下文类中使用命名连接字符串,因此,它使用了默认值。
它在SQL Express默认数据目录中创建了一个新数据库,并且运行正常。
当我意识到我的错误(在想知道为什么没有文件出现在app_data文件夹中)之后,我重命名该类以使用命名连接字符串,然后我不断收到以下错误:
无法完成操作。该 提供的SqlConnection没有 指定初始目录。
我知道如何解决这个问题,但是EF对我来说就像魔术一样!我无法相信它的工作原理和它一样好,我只是好奇它默认使用什么/如果你没有指定什么,那么EF会代表你使用哪些“假设”?
答案 0 :(得分:4)
默认情况下,它使用与您的上下文同名的数据库,但是一旦指定了自定义命名连接字符串,您必须通过Initial Catalog
或Database
参数提供已使用数据库的名称。
答案 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"