0

我刚刚遇到了一个我没有意识到的代码优先迁移功能,这几乎是因为我所知道的一切都来自一些入门博客文章。

是否有关于以下行为的更深入的信息(我觉得这很酷,因为我似乎可以将它与 AutoMapper 结合起来以简化我的 Web 服务 ETL 生活)?

例如我有:

public class foo
{
  [Key]
  public int id { get; set; }
  public bar { get; set; }
}

public class bar
{
  public int id { get; set; }
  public string name { get; set; }
}

public class Context : DbContext
{
  public DbSet<foo> Foos { get; set; }
}

然后我运行迁移命令:

Enable-Migrations
Add-Migration FirstMigration

我得到:

public partial class FirstMigration : DbMigration
{
    public override void Up()
    {
        CreateTable(
            "dbo.foos",
            c => new
                {
                    id = c.Int(nullable: false, identity: true),
                    name = c.String(),
                    bar_id = c.Int(nullable: false),
                    bar_name = c.String(),
                })
                .PrimaryKey(t => t.id);
    }
    public override void Down()
    {
        DropTable("dbo.foos");
    }
}
4

2 回答 2

1

检查这两个博客文章。他们将为您提供迁移功能的概述:

于 2012-09-18T07:19:14.917 回答
0

我不是 C# 专家,这可能是一个错字,但 bar 导航属性的 foo 类中是否缺少属性名称?

于 2012-09-25T02:12:34.493 回答