这是关于带有Visual Studio 2012 Ultimate和SQL Server Express 2012的ConnectionStrings / ASP.NET MVC。
在这里跟进本教程:http : //www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to- aspnet-mvc-4我遇到了一个问题我的web.config中的这两个连接字符串:
<connectionStrings> <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0; Initial Catalog=aspnet-MvcMovie-users; Integrated Security=SSPI; AttachDBFilename=|DataDirectory|\aspnet-MvcMovie-users.mdf" providerName="System.Data.SqlClient" /> <add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0; AttachDbFilename=|DataDirectory|\Movies.mdf; Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings>
该网站运行正常,但我无法确定为什么在App_Data文件夹中创建第一个数据库,而在“ C:\ Program Files \ Microsoft SQLServer \ MSSQL11.SQLEXPRESS \ MSSQL \DATA”中创建第二个数据库?我认为两者都将在App_data中创建,因为两者都利用了以下属性:AttachDBFilename = |DataDirectory |!
注意:本教程提到应该在App_Data中,并且添加了一个屏幕截图,可以在其中显示它!
我一直在寻找答案,并陷入了SQL的复杂性(我认为用户实例可能是解决方案),但无法为此找到答案:
(这对于阅读有关用户实例http://msdn.microsoft.com/zh- cn/library/bb264564(v=sql.90).aspx可能很有用)
任何想法都将不胜感激。提前致谢。
问候
经过研究/测试,结果如下:
VS将查看DataContext的类名称,并查看是否提供了与该类名称相同名称的连接字符串。例如:
public class MovieDataContext : DbContext
和
<connectionStrings><add name="MovieDataContext" ...
如果它设法找到匹配的连接字符串,它将根据您在相应数据字符串中指定的条件来创建数据库(要将数据库添加到App_Data中,请将数据库的路径设置为| DataDirectory |,如上述两个连接字符串中所示)在问题中); 如果名称不匹配或您未提供任何连接字符串,VS将退回到默认设置,并在默认位置/设置 (通常为C:\ Program Files \ MicrosoftSQL Server \ MSSQL11)中创建数据库。 SQLEXPRESS \ MSSQL \ DATA)。
请注意,“集成安全性”设置和“初始目录”都没有任何作用(我能够在具有集成安全性= True和集成安全性= SSPI且有/没有初始目录的App_Data中创建数据库)。
希望这可以帮助。感谢所有参加的人。