繁体   English   中英

如何从 EF 中的迁移自动生成表中排除?

[英]How to Exclude from migration Auto-Generated table in EF?

我有表 Asp.net_users,它与表 Clients 是多对多关系。 它们之间没有映射的 object,它是由 EF 自动生成的:

modelBuilder.Entity<Client>(entity =>
{
    entity.Property(e => e.State)
        .HasConversion<string>();

    entity.HasMany(d => d.Users)
        .WithMany(p => p.Clients)
        .UsingEntity<Dictionary<string, object>>(
            "ClientUser",
            l => l.HasOne<AspNetUser>().WithMany().HasForeignKey("UserId"),
            r => r.HasOne<Client>().WithMany().HasForeignKey("ClientId"),
            j =>
            {
                j.HasKey("ClientId", "UserId");
                j.ToTable("client_users"); // ,"identity"
                j.IndexerProperty<string>("ClientId");
                j.IndexerProperty<string>("UserId");
            });
});

上面的代码生成我在迁移中不需要的表client_users

我试图添加到上面的代码中:

.Metadata
.SetIsTableExcludedFromMigrations(true)

没有运气。

我知道我可以排除使用这种方法

modelBuilder.Entity<AspNetUser>().ToTable("asp_net_users", "identity", t => t.ExcludeFromMigrations());

但问题是:上面提到的表是自动生成的,我不知道如何在上面做 ToTable。

尝试过

modelBuilder.Entity().ToTable("client_users", t => t.ExcludeFromMigrations());

但它不编译。 modelBuilder.Entity()想要一个 object。

请帮忙

我添加了j.Metadata.SetIsTableExcludedFromMigrations(true); 在里面,它起作用了:

entity.HasMany(d => d.Users)
  .WithMany(p => p.Clients)
  ...
  j =>
  {
      ...
      j.Metadata.SetIsTableExcludedFromMigrations(true);
  });

问题未解决?试试以下方法:

如何从 EF 中的迁移自动生成表中排除?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM