1

在 C# Web Api 项目中,我有一些模型类(例如客户和信息)

public class Customer
{
    [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    public long OrderId { get; set; }
    [Required]
    public string CompanyName { get; set; }
}

public class Info
{
    [ScaffoldColumn(false)]
    public int Id { get; set; }
    [Required]
    public Customer Customer { get; set; }
    public string Property { get; set; }
    public string Value { get; set; }
}

在开发过程中,它们经常会发生变化,所以我想在模型发生变化时删除并重新创建数据库。

你是怎么设置的?据我了解,为了插入一些初始数据,有种子方法,但它属于哪个类,这个方法在哪里调用?

4

1 回答 1

1

设置数据库初始化程序。如果要在模型更改时删除现有数据库并重新创建它,请使用DropCreateDatabaseIfModelChanges初始化程序:

Database.SetInitializer(new DropCreateDatabaseIfModelChanges<YourContext>());

如果您想用一些数据为数据库播种,请创建自己的初始化程序并覆盖种子方法:

public class YourInitializer : DropCreateDatabaseIfModelChanges<YourContext>
{
    protected override void Seed(YourContext context)
    {
        context.Foos.Add(new Foo());
        // ...
        context.SaveChanges();
        base.Seed(context);
    }
}

并使用这个初始化器:

Database.SetInitializer(new YourInitializer());
于 2013-08-15T09:58:48.833 回答