C# .NET 5和实体框架核心(5.0.1)与Cosmos的迁移问题

C# .NET 5和实体框架核心(5.0.1)与Cosmos的迁移问题,c#,.net-5,c#-9.0,entity-framework-core-5,C#,.net 5,C# 9.0,Entity Framework Core 5,我有一个控制台应用程序(.NET 5),在Azure Cosmos数据库上使用Entity Framework Core 5.0.1 我的DbContext有以下内容: public class DomainEventStoreContext : DbContext { public DbSet<DomainEventStoreEntry> DomainEventLogs { get; set; } protected override void OnConfigu

我有一个控制台应用程序(.NET 5),在Azure Cosmos数据库上使用Entity Framework Core 5.0.1

我的
DbContext
有以下内容:

public class DomainEventStoreContext : DbContext
{
    public DbSet<DomainEventStoreEntry> DomainEventLogs { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            => optionsBuilder.UseCosmos(
                "https://abc-cosmodb.documents.azure.com:443/",
                "KeyString",
                databaseName: "DBName");

    protected override void OnModelCreating(ModelBuilder builder)
    {
        // the container name
        builder.HasDefaultContainer("DomainEvents");

        builder.Entity<DomainEventStoreEntry>()
            .ToContainer("DomainEvents");

        builder.Entity<DomainEventStoreEntry>()
            .HasNoDiscriminator();

        builder.Entity<DomainEventStoreEntry>()
            .HasNoKey();

        builder.Entity<DomainEventStoreEntry>()
            .HasPartitionKey(o => o.PartitionKey).Property(e => e.PartitionKey).IsRequired();

        builder.Entity<DomainEventStoreEntry>()
            .Property(e => e.EventId).IsRequired();

        builder.Entity<DomainEventStoreEntry>()
            .Property(e => e.Content).IsRequired();

        builder.Entity<DomainEventStoreEntry>()
            .Property(e => e.CreationTime).IsRequired();

        builder.Entity<DomainEventStoreEntry>()
            .Property(e => e.State).IsRequired();

        builder.Entity<DomainEventStoreEntry>()
            .Property(e => e.EventTypeName).IsRequired();

        builder.Entity<DomainEventStoreEntry>()
            .Property(e => e.TransactionId).IsRequired();

    }
}
当我尝试创建迁移时,出现以下错误:

无法解析类型为“Microsoft.EntityFrameworkCore.Migrations.IMigrator”的服务。这通常是因为没有为此DbContext配置数据库提供程序。可以通过重写“DbContext.OnConfiguring”方法或在应用程序服务提供程序上使用“AddDbContext”来配置提供程序。如果使用了“AddDbContext”,则还要确保DbContext类型在其构造函数中接受DbContextOptions对象,并将其传递给DbContext的基本构造函数。”

我正在GitHub上使用微软的实体框架的基线。

我刚刚发现Azure Cosmos不支持迁移。您必须调用context.Database.EnsureCreated()以确保它已创建

class Program
{
    static void Main(string[] args)
    {
        var context = new DomainEventStoreContext();
    }
}