我在Visual Studio中创建了我的初始项目,并发现在创建初始迁移后使用了SQL Server。然后,我将所有连接信息更改为使用MYSQL并成功连接。我再次创建了初始迁移,并创建了所有ASP安全表。我添加了一个新模型并更新了数据库,但是它创建了一个空迁移(只是UP / DOWN方法)
我尝试了在这里和其他网站上找到的多个修复程序。我退出了第二次迁移,然后重试。我尝试再次强制迁移(-f)。我删除了新的MYSQL数据库并删除了迁移,然后重新开始,所有迁移都得到了相同的结果。
这是我的模型代码:
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace congresssucks_conversion.Models
{
public class BlogPost : DBContext
{
public int Id { get; set; }
public string Title { get; set; }
public string ShortPost { get; set; }
public string Post { get; set; }
public string Tags { get; set; }
public DateTime Updated { get; set; }
}
}
这是迁移文件:
namespace congresssucks_conversion.Migrations
{
using System;
using System.Data.Entity.Migrations;
public partial class blogpost : DbMigration
{
public override void Up()
{
}
public override void Down()
{
}
}
}
它成功完成,并且在终端窗口中没有错误。
答案 0 :(得分:0)
您要结合两个单独的内容,即模型类和数据库上下文。
您的BlogPostm类不应继承DbContext,而应仅是普通的C#类。
然后您创建一个新的类,如下所示:
public class BlogDbContext : DbContext
{
public DbSet<BlogPostm> Posts { get; set; }
}
现在,您有一个可以代表一个帖子的类,另一个可以代表具有多个博客帖子表的数据库的类。迁移生成器正在寻找这些DbSet<whatever>
属性,因此您应该在更改后看到实际的迁移。
您可以通过多种方法来描述您希望实体框架对数据库执行的操作,因此值得回顾一下实体框架教程。
答案 1 :(得分:0)
尝试从_MigrationHistory表中删除最后一次迁移的记录。可能是在将新模型对象的DbSet添加到DbContext类之前,错误地创建了该记录。删除之后,将使用正确的Up()和Down()方法创建新的迁移。