ASP.NET MVC无法创建数据库

时间:2016-08-01 10:33:52

标签: c# sql asp.net-mvc

我是ASP.NET MVC的新手,只是搞乱它并试图了解它是如何工作的。所以我决定对使用默认ApplicationDbContext访问的数据库进行查询。通常,如果数据库在此之前尚未实例化,则此查询将确保首先创建数据库然后进行查询,对吧?嗯,这就是我做的:

// This is the default Index action in the Home controller:
public ActionResult Index()
{
     var db = new ApplicationDbContext();
     var usersCount = db.Users.Count();

     return View();
}

我知道查询是没有意义的,但它的唯一目的是生成数据库。事情就是它没有。我在尝试执行查询时得到System.Data.SqlClient.SqlException(方法的第二行)。

即使检查App_Data文件夹,我也看到没有创建数据库。可能是什么原因造成的?奇怪的是,这适用于我的台式电脑,但不适用于我的笔记本电脑。但我确实注意到,当我在连接字符串中放入无效的数据源(例如Data Source =。)时,我在台式计算机上得到了相同的异常。所以也许正在发生导致这种行为的LocalDb。

连接字符串:

<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>

这是一个完整的例外:

  

EntityFramework.dll中发生了'System.Data.SqlClient.SqlException'类型的异常但未在用户代码中处理

     

其他信息:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:52 - 无法找到本地数据库运行时安装。验证是否已正确安装SQL Server Express并且已启用本地数据库运行时功能。)

如果有人能为此提出解决方案,我将非常感激!

P.S:如果我将数据源更改为我的SQL Server Express服务器名称,我的笔记本电脑上的一切正常。

1 个答案:

答案 0 :(得分:0)

听起来你的LocalDb实例没有安装。这是一个&#34; dev附件&#34;与某些Visual Studio版本一起安装的SQL版本,可能已被取消选择,或者如果原始安装较旧且已经过升级等,则可能只是未包括在内。

这篇文章给出了一个不错的解释:How to install localdb separately?

基本上是google for SqlLocalDb.msi并按照说明操作。

我通常更喜欢Express而不是localDb,但这取决于你。

另请注意,连接字符串被视为&#34;松散&#34; MVC内容的web.config中的信息。也就是说,它们往往是特定于机器的,因此如果您正在更换机器(或在团队中工作),您的机器可能会有不同的连接字符串(或本地副本/部分web.config) )。