在AppConfig中可以使用|DataDirectory|
但我找不到任何文档?ADO.NET | DataDirectory |这在哪里记录?
回答
|DataDirectory|
是一个替换字符串,因此您可以分别配置数据库文件的位置。
所以不是:
SqlConnection c = new SqlConnection (
@"Data Source=.\SQLDB; AttachDbFilename=C:\MyDB\Database.mdf;Initial Catalog=Master");
你做到以下几点:
// Set |DataDirectory| value
AppDomain.CurrentDomain.SetData("DataDirectory", "C:\myDB");
// SQL Connection String with |DataDirectory| substitution string
SqlConnection c = new SqlConnection (
@"Data Source=.\SQLDB; AttachDbFilename=|DataDirectory|\Database.mdf;Initial Catalog=Master");
这是一些文档(搜索DataDirectory):http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx – ironic 2012-04-02 17:09:21
以及更多:http://msdn.microsoft.com /en-us/library/cc716756.aspx – ironic 2012-04-02 17:11:57
这似乎也适用于sqlite:http://sqlite.phxsoftware.com/forums/t/1824.aspx – juFo 2013-01-21 09:28:25
有一个叫SqlConnectionHelper一个内部类,它解析这一点,如果需要创建MDF。
下面是我可以找到关于该类和| DataDirectory |宏:http://msdn.microsoft.com/en-us/library/aa478948.aspx。
在MSDN社会论坛this答案可以发现
| DataDirectory目录| (包含在管道符号中)是一个替代字符串,用于指示数据库的路径。它消除了对导致几个问题的完整路径进行硬编码的需要,因为数据库的完整路径可以在不同的地方被序列化。 DataDirectory还可以轻松共享项目并部署应用程序。
例如,而不是具有下面的连接字符串:
"Data Source= c:\program files\MyApp\Mydb.sdf"
使用DataDirectory目录,你可以有下面的连接字符串:
“Data Source = |DataDirectory|\Mydb.sdf”
要设置DataDirectory属性,调用的AppDomain。 SetData方法。如果您没有设置DataDirectory属性,下面的默认规则将应用于访问数据库文件夹:
- 对于被放在一个文件夹在用户的计算机上的应用程序,数据库文件夹使用应用程序文件夹。
- 对于在ClickOnce下运行的应用程序,数据库文件夹使用创建的特定数据文件夹。
你会在MVC项目中调用AppDomain.SetData? – alex 2015-08-05 14:18:51
http://msdn.microsoft.com/en-us/library/aa478948.aspx
的| DataDirectory目录|连接字符串的一部分指定MDF文件位于App_Data目录中。
不正确的家伙! | DataDirectory |指的是您的实例为其配置的mssql \ data目录。
因此,例如,我正在使用Visual Studio 2012与SQL Express不兼容。 | DataDirectory目录|将所有MDF文件放在C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.SQLEXPRESS \ MSSQL \ DATA下安装我的sql express,而不是解决方案app_data文件夹。
此文件名称MVCMovie.Models.MovieDBContext不是Movies.mdf在我的web.config中指定。
我想它需要在visual studio中的某个地方进行配置,以便将其正确放置在app_data下。
如果您使用代码优先迁移,这可能是相关的。
使用VisualStudio 2013(至少)运行Update-Database命令时,数据目录与当前在Visual Studio中配置的“启动项目”相对。
即使您在另一个项目上运行更新数据库(在包管理器控制台上选择该项目),它也会在当前选定的启动项目的App_Data上创建数据库。
- 1. objc.signature记录在哪里?
- 2. [NSIndexPath行]记录在哪里?
- 3. com.ibm.xsp.component.UIIncludeComposite记录在哪里?
- 4. groups__name在哪里记录?
- 5. createEnvelopeFromDocument()记录在哪里?
- 6. EXC_BAD_ACCESS在哪里记录?
- 7. UIView.init()记录在哪里?
- 8. factory_girl记录在哪里?
- 9. Time.advance在哪里记录?
- 10. NSXML记录在哪里?
- 11. 这个对象是什么类型的?它在哪里记录?
- 12. 如果启用wmi,WCF会在哪里记录这些内容?
- 13. PHP发布500错误 - 这是在哪里记录?
- 14. ADO.NET记录导航
- 15. hadoop CopytoLocal命令在哪里被记录?
- 16. 我应该在哪里过滤记录?
- 17. chrome.app在哪里正式记录?
- 18. $(<文件)在哪里记录?
- 19. laravel在哪里放置记录器类
- 20. JSHint错误记录在哪里?
- 21. 删除记录/哪里存在问题
- 22. mysql返回记录在哪里条款
- 23. sqlite3.connection .__ init__方法记录在哪里?
- 24. AWS Lambda回调API在哪里记录?
- 25. 这里的js在哪里
- 26. ADO.NET DataService记录数量
- 27. 从哪里通过id删除记录?
- 28. 记事本++中存储的记录宏在哪里?
- 29. 我的记忆在哪里?
- 30. 这些存储在哪里?
[本文](http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/dc31ea59-5718-49b6-9f1f-7039da425296)似乎足以解释它。 – 2009-09-11 06:54:31