当前位置: 首页 > 面试题库 >

ASP.NET ConnectionString AttachDbFilename = | DataDirectory |

孔飞舟
2023-03-14
问题内容

这是关于带有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 SQL
Server \ 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 \ Microsoft
SQL Server \ MSSQL11)中创建数据库。 SQLEXPRESS \ MSSQL \ DATA)。

请注意,“集成安全性”设置和“初始目录”都没有任何作用(我能够在具有集成安全性= True和集成安全性=
SSPI且有/没有初始目录的App_Data中创建数据库)。

希望这可以帮助。感谢所有参加的人。



 类似资料:
  • 问题内容: 我正在使用本地数据库,由于某种原因,当我使用时,添加/删除时数据库不会更新 但是, 如果我使用以下目录,它确实可以工作 有人知道为什么吗? 问题答案: 变量具有基于OS的.NET Framework设置的值。 我对此做了一个快速实验。 当我运行上面的代码时,它什么也没显示。调试后,我发现该变量具有值。 然后,我尝试使用它来创建数据库连接并打开它。 此代码失败,并出现以下错误。 尝试为文

  • 本文向大家介绍c# DataDirectory的用法,包括了c# DataDirectory的用法的使用技巧和注意事项,需要的朋友参考一下 笔者在使用Entity Framework中的Scaffolding机制自动创建拓展名为mdf的数据库及表单时,遇到如下的错误: A file activation error occurred. The physical file name '\\Music

相关阅读

相关文章

相关问答