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

发布于 2024-11-05 19:11:41 字数 376 浏览 1 评论 0原文

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

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

当我意识到我的错误时(在想了很长时间为什么没有文件显示在 app_data 文件夹中)时,我重命名了该类以使用命名的连接字符串,然后我不断收到以下错误:

无法完成操作。这 提供的 SqlConnection 不 指定初始目录。

我知道如何解决这个问题,但是 EF 对我来说就像魔法!我不敢相信它的工作效果如此之好,我只是好奇它默认使用什么/如果您什么也不指定,是否有 EF 代表您使用的“假设”列表?

I did (pretty much) everything correct in a new EF project, but I forgot to use the named connection string in the EF context class, so, it used the default.

It created a new database inside the SQL Express default data directory, and it worked perfectly.

When I realised my mistake (After wondering for ages why no files were showing up in the app_data folder), I renamed the class to use the named connection string and then I kept getting the following error:

Unable to complete operation. The
supplied SqlConnection does not
specify an initial catalog.

I know how to fix this, but, EF is like magic to me! I can't believe it works as well as it does and I am just curious as to what it uses by default / is there a list anywhere of "assumptions" that EF uses on your behalf if you specify nothing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

淡紫姑娘! 2024-11-12 19:11:41

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

By default it uses database with the same name as your context but once you specify custom named connection string you must provide the name of used database either by Initial Catalog or Database parameter.

最偏执的依靠 2024-11-12 19:11:41

我遇到了同样的问题,但我通过更改 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"

I had the same problem but I figured it out by changing the web.conf. You need to specify an initial catalog and Integrated security and make a user instance.

Here is working 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"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文