簡體   English   中英

實體框架代碼優先 - 如何在保存時忽略列

[英]Entity Framework Code First - How to ignore a column when saving

我有一個名為Client的類,它首先使用Entity Framework代碼映射到數據庫表。 該表有一個我需要在Client類中提供的計算字段,但我知道不可能寫入該字段。 是否有一種方法可以在保存時配置實體框架以忽略該屬性,但在讀取時包含該屬性?

我已嘗試在配置類中使用Ignore方法,或使用[NotMapped]屬性,但這些會阻止從數據庫中讀取屬性。

您可以將DatabaseGeneratedAttributeDatabaseGeneratedOption.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM