我的模型上有属性,我不想在迁移后在表中生成字段。
是否可以排除实体框架核心迁移的属性?
我的DbContext
上是否有模型的属性或某些 Fluent API 方法?
您应该能够将[NotMapped]
指定为属性上方的数据注释。
例如,如果您想在由FirstName
和LastName
组成的模型中加入FullName
,您将执行以下操作:
public string FirstName { get; set; }
public string LastName { get; set; }
[NotMapped]
public string FullName { get;set };
Ignore
方法是 usd,用于指定从映射中排除以下Contact
类中自动实现的FullName
属性:
public class SampleContext : DbContext
{
public DbSet<Contact> Contacts { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Contact>().Ignore(c => c.FullName);
}
}
public class Contact
{
public int ContactId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string FullName => $"{FirstName} {LastName}";
public string Email { get; set; }
}
注: 与忽略方法等效的数据批注是NotMapped
属性。