Sim*_*ams 5 .net c# entity-framework entity-framework-4.1 entity-framework-5
我有一个名为Client的类,它首先使用Entity Framework代码映射到数据库表.该表有一个我需要在Client类中可用的计算字段,但我知道不可能写入该字段.是否有一种方法可以在保存时配置实体框架以忽略该属性,但在读取时包含该属性?
我已尝试在配置类中使用Ignore方法,或使用[NotMapped]属性,但这些会阻止从数据库中读取属性.
您可以使用DatabaseGeneratedAttribute与DatabaseGeneratedOption.Computed选项:
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public ComputedPropertyType ComputedProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)
或者如果您更喜欢流利的api,您可以HasDatabaseGeneratedOption在DbContext课堂上使用方法:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8206 次 |
| 最近记录: |