我想知道是否有某种方法来调试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 DataContext:
namespace SmartRent.Models
{
public class AdContext : DbContext
{
public DbSet<Ad> Ads { get; set; }
public DbSet<CraneLocation> CraneLocations { get; set; }
}
}
答案 0 :(得分:1)
解决此类问题的最佳方法是使用SQL事件探查器。尝试使用我的代码重新编译。
答案 1 :(得分:1)
仅从Code First的角度来看......
这可能对你有用Entity Framework 4.3 doesn't create database
而你必须使用PM控制台,没有其他方法可以解决问题(这是实际'调试'正在发生的事情的最佳方式)。
PM控制台中的每一步都必须取得成功 - 没有例外,也可以阅读评论,因为它们经常告诉您可能出现的问题。
您还可以运行Update-Database -Script
来了解正在创建的内容(在实际创建之前)
并且SQLExpress是默认的(我认为),因此您可以删除连接字符串以测试未指定连接的内容。
简而言之,围绕这个和演奏/理解PM控制台的一些一致性,帮助我控制事物,也可能对你有所帮助
还手动删除之前创建的Db-s(如果你有任何代码,则由Code First删除),删除迁移(如果存在,重新编译然后重新运行),这样通常的调试技术:)。
答案 2 :(得分:0)
请参阅:Debugging Package Manager Console Update-Database Seed Method
从答案中删除
if (System.Diagnostics.Debugger.IsAttached == false)
System.Diagnostics.Debugger.Launch();