ASP.NET ConnectionString AttachDbFilename=|DataDirectory|

后端 未结 4 1398
醉酒成梦
醉酒成梦 2021-01-06 01:12

This is about ConnectionStrings / ASP.NET MVC with Visual Studio 2012 ultimate & SQL Server Express 2012.

Following up with this tutorial here: http://www.asp.ne

相关标签:
4条回答
  • 2021-01-06 01:24

    What AMT has given is exactly right. It was confusing as it is to use connection strings with .mdf and .sdf files.

    I have another pointer for you though, you can change the default setting where the application looks for a connection string with the name matching the class name of the context class by overriding the constructor of DBContext and providing the paramter nameOrConnectionString as follows

    public BlogsContext()
                : base("name=EFBlogs")
            {
            }
    

    Application then searches for a connection string named EFBlogs, if it cannot find connection string then it creates the database with name EFBlogs, instead of BlogsContext

    0 讨论(0)
  • 2021-01-06 01:32

    after research/tests it turned out to be as follows:

    VS will look at the class name of the DataContext and will look to see if you have provided a connection string with the same name as the class name; for example:

    public class MovieDataContext : DbContext
    

    and

    <connectionStrings><add name="MovieDataContext" ...
    

    if it manages to find a matching connection string it will create the DB based on the criteria you specified in the respective data string (to add the DB to the App_Data set the path of the DB to |DataDirectory| as shown in both connection strings mentioned in the question); if the name doesn't match or you didn't provide any connection string, VS will fall back to the default settings and will create the DB in the default location/settings (usually C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA).

    note neither the "Integrated Security" settings nor the "Initial Catalog" play any role with this (I was able to create the DB in the App_Data with both Integrated Security = True & Integrated Security = SSPI and with/without Initial Catalog).

    Hope this helps. Thanks for everyone that participated.

    0 讨论(0)
  • 2021-01-06 01:46

    Hi I notice a difference when you add a database and it asks do you want it to be placed in the app_data folder if you click yes then it goes to the app_data folder and the full path name of the mdf is also in the app_data folder whne you use file explorer.

    0 讨论(0)
  • 2021-01-06 01:50

    I had the same issue. I believe the difference is in the Integrated Security setting. I have SQLExpress installed and found my Movies database in there using MS SQL Server Management Studio.

    Check out this response for a better explanation. Difference between Integrated Security = True and Integrated Security = SSPI

    0 讨论(0)
提交回复
热议问题