ADO.NET |数据目录|这是在哪里记录的?
在 AppConfig 中可以使用 |DataDirectory|
但我找不到任何文档?
In AppConfig it is possible to use |DataDirectory|
but I can't find any doc ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
|DataDirectory|
是一个替换字符串,因此您可以单独配置数据库文件的位置。而不是:
因此,您可以执行以下操作,
|DataDirectory|
is a substitution string so you can configure the location of your database file separately.So instead of:
you do the following:
在 MSDN 社交论坛 此 中找到
答案可以在|DataDirectory| (包含在管道符号中)是指示数据库路径的替换字符串。它消除了对完整路径进行硬编码的需要,这会导致几个问题,因为数据库的完整路径可以在不同的地方序列化。 DataDirectory 还可以轻松共享项目和部署应用程序。
例如,
您可以使用以下连接字符串,而不是使用 DataDirectory:
要设置 DataDirectory 属性,请调用 AppDomain.SetData 方法。如果不设置 DataDirectory 属性,将应用以下默认规则来访问数据库文件夹:
In the MSDN social forums this answer can be found
|DataDirectory| (enclosed in pipe symbols) is a substitution string that indicates the path to the database. It eliminates the need to hard-code the full path which leads to several problems as the full path to the database could be serialized in different places. DataDirectory also makes it easy to share a project and also to deploy an application.
For example, instead of having the following connection string:
Using DataDirectory, you can have the following connection string:
To set the DataDirectory property, call the AppDomain.SetData method. If you do not set the DataDirectory property, the following default rules will be applied to access the database folder:
错误的家伙! |数据目录|指您的实例配置的 mssql\data 目录。
例如,我将 Visual Studio 2012 与 SQL Express 结合使用。 |数据目录|将所有 MDF 文件放在 C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA 下,其中安装了我的 sql express,而不是我的解决方案 app_data 文件夹。
此外,该文件的名称为 MVCMovie.Models.MovieDBContext,而不是我的 web.config 中指定的 Movies.mdf。
我认为它需要在 Visual Studio 中的某个位置进行配置,才能将其适当地放置在 app_data 下。
Incorrect guys! The |DataDirectory| refers to the mssql\data directory your instance is configured for.
So for example I am using Visual Studio 2012 inconjunction with SQL Express. |DataDirectory| places all MDF files under C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA where my sql express was installed not my solutions app_data folder.
Also the file is names MVCMovie.Models.MovieDBContext not Movies.mdf as specified in my web.config.
I'm thinking it needs to be configured somewhere in visual studio for it to be placed appropriately under app_data.
有一个名为 SqlConnectionHelper 的内部类,它会解析此内容并在需要时创建 MDF。
这是我能找到的关于该类和 |DataDirectory| 的唯一 MS 文档宏: http://msdn.microsoft.com/en-us/library/ aa478948.aspx。
There is an internal class called SqlConnectionHelper which parses this and creates the MDF if needed.
Here's the only MS doc I can find about that class and the |DataDirectory| macro: http://msdn.microsoft.com/en-us/library/aa478948.aspx.
http://msdn.microsoft.com/en-us/library/aa478948.aspx
http://msdn.microsoft.com/en-us/library/aa478948.aspx
如果您使用代码优先迁移,这可能相关。
使用 VisualStudio 2013(至少),当运行 Update-Database 命令时,数据目录与当前在 Visual Studio 中配置的“启动项目”相关。
即使您在另一个项目(在包管理器控制台上选择)上运行更新数据库,它也会在当前选定的启动项目的 App_Data 上创建数据库。
This might be relevant if you're using code first migrations.
With VisualStudio 2013 (at least) when running an Update-Database command the data directory is relative from the "Startup Project" currently configured in visual studio.
Even if you run the Update-Database on another project (as selected on the Package Manager Console), it will create your database on the App_Data of the currently selected Startup Project.