实体框架是否使用默认的初始目录以及它做了什么假设?
我在新的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
默认情况下,它使用与上下文同名的数据库,但一旦指定自定义命名连接字符串,您必须通过
初始目录
或数据库
参数提供所使用数据库的名称。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
orDatabase
parameter.我遇到了同样的问题,但我通过更改
web.conf
解决了这个问题。您需要指定初始目录和集成安全性并创建用户实例。这是正在运行的 web.conf:
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: