c# - 关于 Code First Database Evolution(又名迁移)

标签 c# .net entity-framework code-first entity-framework-migrations

我观看了来自 MSDN 的截屏视频 BLOG谈到数据库迁移。

有谁知道我们什么时候可以使用这个功能?看起来它还不能在 CTP5 中工作。

顺便问一下,在我更改模式代码后,有什么方法可以播种初始数据吗?

这就是我现在正在做的,每次我更改模型时它都会删除所有数据。

DbDatabase.SetInitializer<Context>(
    new DropCreateDatabaseIfModelChanges<Context>());

最佳答案

他们很可能在 2011 年第一季度推出的 RTM 版本中获得此迁移功能。

要用一些初始数据填充数据库,您可以创建自己的数据库初始化器并让它继承您想要的策略(现在我们有 2 个选项),然后覆盖其中的 Seed 方法:

public class MyInitializer : DropCreateDatabaseIfModelChanges<MyContext>
{
    protected override void Seed(InheritanceMappingContext context)
    {        
        MyEntity entity = new MyEntity()
        {
            ...
        };
        context.MyEntities.Add(entity);
        context.SaveChanges();
    }
}

关于c# - 关于 Code First Database Evolution(又名迁移),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4703486/

相关文章:

c# - 在不区分大小写的 HashSet<string> 中获取值

asp.net - Entity Framework - "New transaction is not allowed because there are other threads running in the session"

c# - 如何在 WPF 中为常见对话框启用视觉样式?

c# - 如何将 native C/C++ *.dll 连接到 IIS 中托管的 WCF C#?

c# - IEnumerable.Count() 可以返回负数吗?

c# - lock() 在同一个对象上我试图独占访问或使用单独的锁定对象?

c# - 为什么 TransactionScope 不能与 Entity Framework 一起使用?

c# - 如何避免“"The name ' ConfigurationManager'在当前上下文中不存在”错误?

c# - 我需要从具有固定字段长度的数据库表创建一个平面文件

c# - Ubuntu 上的目标语言是什么?