gpt4 book ai didi

c# - 如何在迁移中使用 DbContext?

转载 作者:行者123 更新时间:2023-11-30 23:09:06 25 4
gpt4 key购买 nike

我如何使用 DbContext 与当前数据库(现在用于迁移)一起工作。

例子:

namespace Data.SqlServer.Migrations
{
[DbContext(typeof(MyDbContext))] // I want use this context
[Migration("CustomMigration_DataSeed")]
public partial class DataSeedMigration : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
// add some entities
_context.User.Add(new User());
}

protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}

感谢您的帮助!

最佳答案

为您的迁移配置创建一个类:

internal sealed class Configuration : DbMigrationsConfiguration<MyDbContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
//On true you might be losing data be aware.
AutomaticMigrationDataLossAllowed = false;
ContextKey = "Path To Your DbContext";
}

protected override void Seed(MyDbContext context)
{
// This method will be called after migrating to the latest version.

// You can use the DbSet<T>.AddOrUpdate() helper extension method
// to avoid creating duplicate seed data. E.g.
//
// context.People.AddOrUpdate(
// p => p.FullName,
// new Person { FullName = "Andrew Peters" },
// new Person { FullName = "Brice Lambson" },
// new Person { FullName = "Rowan Miller" }
// );
//
}
}

然后将其引用到您的 DbContext 类:

public class MyDbContext : DbContext
{
public MyDbContext()
: base("name=MyConnection")
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext,Configuration>("MyConnection"));
}

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//here you can MAP Your Models/Entities
}
}

请记住,如果您不想迁移多个 POCO,则不要将它们添加到您的 OnModelCreating 方法中,并很好地注释它们。

关于c# - 如何在迁移中使用 DbContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46011243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com