I'm new to ASP.NET MVC and was just messing around with it and trying to see how it works. So I decided to make a query to the database accessed with the default ApplicationDbContext
. Normally, if the database hadn't been instantiated before that, this query would make sure to first create the database and then make the query, right? Well, here's what I did:
// This is the default Index action in the Home controller:
public ActionResult Index()
{
var db = new ApplicationDbContext();
var usersCount = db.Users.Count();
return View();
}
I know that the query is pretty meaningless but the sole purpose of it was for it to generate the database. The thing is it that it doesn't. I get a System.Data.SqlClient.SqlException
when trying to execute the query (second line of the method).
Even when checking the App_Data
folder I see that the database isn't created. What could be the cause of this? Strange thing is that this works on my desktop computer, but not on my laptop. But I did notice that when I put an invalid Data Source(ex. Data Source=.) in the connection string I get the same exception on my desktop computer. So maybe something is happening with the LocalDb that's causing this behaviour.
The connection string:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-DefaultProject-20160731061747.mdf;Initial Catalog=aspnet-DefaultProject-20160731061747;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
This is the full exception:
An exception of type 'System.Data.SqlClient.SqlException' occurred in EntityFramework.dll but was not handled in user code
Additional information: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 52 - Unable to locate a Local Database Runtime installation. Verify that SQL Server Express is properly installed and that the Local Database Runtime feature is enabled.)
I would be very grateful if someone can come up with a solution for this!
P.S: Everything works fine on my laptop if I change the Data Source to my SQL Server Express server name.