调试EF代码第一个数据库生成



我想知道是否有某种方法可以调试ASP.NET MVC 3应用程序的数据库生成。我遇到了一些问题:数据库没有创建,我没有错误消息。

更新

这是我的连接字符串:

  <connectionStrings>
    <add name="SmartRent.Models.AdContext"  connectionString="Data Source=.SQLEXPRESS;Integrated Security=SSPI;"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

这是我的Global.asax.cs

protected void Application_Start()
{
    System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseAlways<SmartRent.Models.AdContext>());
    AreaRegistration.RegisterAllAreas();
    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);
}

这是我的EF数据上下文:

namespace SmartRent.Models
{
    public class AdContext : DbContext
    {
        public DbSet<Ad> Ads { get; set; }
        public DbSet<CraneLocation> CraneLocations { get; set; }
    }
}
  1. 运行我已完成的教程解决方案http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/getting-started-with-mvc3-part1-cs
  2. 我的代码可以工作,所以修改我的代码/你的代码,直到它坏掉/工作

解决这类问题的最佳方法是使用SQL探查器。试着先用我的代码重新编程。

仅从代码优先的角度来看
这可能会帮助您实体框架4.3;t创建数据库
并且您必须使用PM控制台,没有其他方法可以解决问题(这是实际"调试"正在发生的事情的最佳方法
PM控制台中的每一步都必须取得成功——毫无例外,还要阅读评论,因为它们经常告诉你可能出了什么问题
您还可以运行Update-Database -Script来了解正在创建的内容(在实际创建之前)
SQLExpress是默认的(我认为),所以您可以删除连接字符串来测试,而无需指定连接
简言之,围绕这一点和播放/理解PM控制台的一些一致性,帮助我控制事情,可能也会帮助你
此外,手动删除以前创建的Db-s(如果您有任何Db-s,则由Code First创建),删除迁移(如果存在),重新编译然后重新运行,因此通常的调试技术:)。

请参阅:调试包管理器控制台更新数据库种子方法

从答案中截取

if (System.Diagnostics.Debugger.IsAttached == false)
  System.Diagnostics.Debugger.Launch();

最新更新