DbSet< - >在哪里?指定表映射?

时间:2013-09-19 07:18:28

标签: c# entity-framework orm

我写了一个类Patient,它应该是我关系的对象表示。然后我编写了一个继承自DbContext并且包含DbSet的公共属性Patients的上下文类。行。现在,我如何向Entity说这个DbSet应该与数据库中的TBL_PATIENTS表一起使用?我在哪里配置?
(好吧,你可以看到我对.NET和Entity很新,所以感谢任何帮助)

1 个答案:

答案 0 :(得分:1)

您需要创建EntityTypeConfiguration<Patient>并在Context课程中对其进行初始化。

e.g。

Context

public class MyContext : DbContext
{
    static MyContext()
    {
        Database.SetInitializer<MyContext>(null);
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Configurations.Add(new PatientMap());
    }
}

Map

public class PatientMap: EntityTypeConfiguration<Patient>
{
    public PatientMap()
    {
        //table
        this.ToTable("TBL_PATIENTS", "dbo");

        //PK
        this.HasKey(t => t.id);

        //Columns
        this.Property(t => t.forenames)
            .HasColumnName("FIRSTNAMES")
            .IsRequired()
            .HasMaxLength(50);

        // Relationships
        this.HasRequired(t => t.Ward)
            .WithMany(t => t.Patients)
            .HasForeignKey(d => d.Ward_id);
    }
}

有关详细信息,请参阅herehere