[英]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);
});
问题未解决?试试以下方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.