在Mono中启用实体框架迁移

时间:2013-12-04 11:58:28

标签: mono xamarin entity-framework-6

我已经开始使用Xamarin Studio在Mac OS上构建ASP.NET MVC3项目。我现在想要为项目添加新的属性和模型,但我不能在我的生活中解决如何运行Nuget Package Manager控制台以运行Enable-Migrations命令。

我问得太多了吗?这是可能的还是我必须回到Windows上的Visual Studio?

1 个答案:

答案 0 :(得分:16)

所有Entity Framework Migrations命令都只是底层API的瘦包装器。要启用迁移,只需创建一个派生自项目中DbMigrationsConfiguration<TContext>的新类。

对于Add-Migration,请使用与以下内容类似的代码。

var config = new MyMigrationsConfiguration();
var scaffolder = new MigrationScaffolder(config);
var migration = scaffolder.Scaffold("Migration1");

File.WriteAllText(migration.MigrationId + ".cs", migration.UserCode);

File.WriteAllText(migration.MigrationId + ".Designer.cs", migration.DesignerCode);

using (var writer = new ResXResourceWriter(migration.MigrationId + ".resx"))
{
    foreach (var resource in migration.Resources)
    {
        writer.AddResource(resource.Key, resource.Value);
    }
}

对于Update-Database,请参阅Rowan Miller的Running & Scripting Migrations from Code