EF 6.2.0(代码优先)不会在没有任何异常和错误的情况下创建数据库

时间:2018-04-14 11:38:35

标签: asp.net asp.net-mvc entity-framework entity-framework-6

我正在使用Entity Framework 6.2.0 Code First来创建基于我的模型的数据库。

我修复了一些例外情况。但是现在,当我运行应用程序(ASP.NET MVC)时,它将正确执行,没有任何异常。但我仍然没有在SQL Server数据库列表中看到创建的数据库。 我不知道这有什么问题。我没有例外也没有错误。

这是我的HomeController(索引操作方法):

public ActionResult Index()
    {
        ShopStatusService shopStatusService = new ShopStatusService();
        shopStatusService.Insert(new Model.Models.ShopStatus
        {
            Id = 1,
            Title = "Example"
        });
        return View();
    }

ShopStatusService的Insert()方法如下:

    public long Insert(ShopStatus entity)
    {
        try
        {
            dbContext.Set<ShopStatus>().Add(entity);
            SaveContext();
            return entity.Id;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

和我的DatabaseContext:

    public class MyDbContext: DbContext
    {
    public MyDbContext() : base("MyDb") { }
    static MyDbContext()
    {
        Database.SetInitializer(new MigrateDatabaseToLatestVersion<AbarbazarDatabaseContext, Migration.Configuration>());
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();;
    }

    public virtual DbSet<ShopStatus> ShopStatuses { get; set; }
    // and other tables.....
  }

2 个答案:

答案 0 :(得分:0)

public ZSZDbContext():base("name=myDb"){}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
   base.OnModelCreating(modelBuilder);
   modelBuilder.Configurations.AddFromAssembly(Assembly.GetExecutingAssembly());           
}

你可以试试这段代码 或检查你的连接字符串

答案 1 :(得分:0)

它缺少Web.Config中的连接字符串。