[英]Entity Framework Code First - How to ignore a column when saving
我有一個名為Client的類,它首先使用Entity Framework代碼映射到數據庫表。 該表有一個我需要在Client類中提供的計算字段,但我知道不可能寫入該字段。 是否有一種方法可以在保存時配置實體框架以忽略該屬性,但在讀取時包含該屬性?
我已嘗試在配置類中使用Ignore方法,或使用[NotMapped]屬性,但這些會阻止從數據庫中讀取屬性。
您可以將DatabaseGeneratedAttribute
與DatabaseGeneratedOption.Computed
選項一起使用:
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public ComputedPropertyType ComputedProperty { get; set; }
或者如果您更喜歡流暢的api,您可以在DbContext
類中使用HasDatabaseGeneratedOption
方法:
public class EntitiesContext : DbContext
{
public DbSet<EntityType> Enities { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<EntityType>().Property(e => e.ComputedProperty).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);
}
}
將屬性標記為已計算:
modelBuilder
.Entity<MyEntityType>()
.Property(_ => _.MyProperty)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.