在 C 语言中创建 SQL 数据库后未运行迁移#

Migration is not running after creating SQL database in C#

提问人:Jaczura Zoltán 提问时间:10/28/2023 最后编辑:Mustafa ÖzçetinJaczura Zoltán 更新时间:10/28/2023 访问量:28

问:

我设法创建了以下单元测试基类,以便每个测试类都有单独的数据库。

public class BaseTestClass
{
    public HttpClient _httpClient;
    internal Context context { get; set; }

    protected BaseTestClass()
    {
        var webApplicationFactory = new WebApplicationFactory<Program>()
              .WithWebHostBuilder(builder =>
        {
            builder.ConfigureTestServices(services =>
            {
                services.RemoveAll<DbContextOptions<Context>>();
                services.AddDbContext<Context>(options =>
                    options.UseSqlServer(connectionString));
            });
        });

        var scope = webApplicationFactory.Services.GetService<IServiceScopeFactory>()!.CreateScope();
        context = scope.ServiceProvider.GetRequiredService<Context>();
        context.Database.EnsureCreated();
        context.Database.Migrate();

        _httpClient = webApplicationFactory.CreateDefaultClient();
    }

    public void Dispose()
    {
        context.Database.EnsureDeleted();
        context.Dispose();
    }

数据库已创建,但缺少表。迁移是主项目 (Program.cs) 我怎么能说出使用主项目中的迁移的上下文?

C# 数据库迁移

评论

0赞 jdweng 10/28/2023
迁移会在 c# 类/属性和数据库表/字段之间创建映射。迁移有两种模式:1) 创建 2) 更新。请确保是否要修改使用 Update 的属性。您的财产是公开的吗?

答: 暂无答案