实体框架Fluent API映射DbSet<>表

时间:2016-11-23 20:57:34

标签: c# sql entity-framework ef-code-first ef-fluent-api

标题可能有点令人困惑。 但问题是:

由于数据库优化,我们选择为数据库设计ERD,这在某些方面与类图不同。

数据库错误: This is the ERD

类图: enter image description here

好的,问题是;如何将DailyLog数据库实体映射到DailyLog C#域类。 由于性能优化,我们选择将HeartRate作为CLOB存储在数据库中。在域类中,将对象放在特定类类型的列表中会更容易。

如何以干净整洁的方式完成这项工作? 我真的不知道如何将这种数据库实体映射到域类。

计划是以这种方式存储心灵:字符串:" 07:00:01,50; 07:00:02,52&#34 ;;

我已经尝试过DTO,但后来我必须在Domain类和Entity Framework之间创建一个全新的DTO层。我认为有一个更清洁的方法来做到这一点。但我不知道如何。

1 个答案:

答案 0 :(得分:1)

您可以使用EF Fluent API。查看this链接了解详情。在您的情况下,映射应该是这样的:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<DailyLog>().Map(m =>
    {
        m.Properties(p => new { p.Id, p.Date});
        m.ToTable("DAILYLOG");
    });

    modelBuilder.Entity<HeartRatePattern>().ToTable("DAILYLOG").Property(x => string.Join(";",x.HeartRate)).HasColumnType("varchar");
}
相关问题