【问题标题】:EF ComplexType column name (ModelFirst)EF ComplexType 列名 (ModelFirst)
【发布时间】:2014-03-12 11:18:54
【问题描述】:

我正在开发一个 EF 6 项目 (ModelFirst)。

我在所有表中都使用了一个名为“UserInfo”的复杂类型。

但是,当我从模型创建数据库时,列以复杂类型的名称为前缀(例如:UserInfo_CreationDate)

有没有办法在模型中定义不带前缀的列名(CreationData 代替 UserInfo_CreationDate)?

【问题讨论】:

    标签: entity-framework complextype ef-model-first


    【解决方案1】:

    您可以使用AnnotationsFluentApi

    对于FluentApi,覆盖dbContext 类中的OnModelCreating 方法 并且,对于 UserInfo 类的每个属性,添加一个 HasColumnName 定义,如下所示:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {    
        modelBuilder.Entity<YourEntity>().Property(s => s.UserInfo.CreationDate).HasColumnName("CreationData");  
    }
    

    对于Annotations,在UserInfo类的每个属性中,添加如下注解:

    public class UserInfo
    {
        .....
    
        [Column("CreationDate")]
        public DateTime CreationDate {get; set;}
    
        .....
    }  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      相关资源
      最近更新 更多