FluentAPI 配置 T_Persons的方式

1. 数据库中建表 T_Perons,有 Id(主键,自动增长)、Name、CreateDateTime 字段。

2. 创建 Person 类。模型类就是普通 C#类

    public class Person
    {
        public long Id { get; set; }
        public string Name { get; set; }
        public DateTime CreateDateTime { get; set; }
    }

3. 创建一个 PersonConfig 类,放到 ModelConfig 文件夹下(PersonConfig、EntityConfig 这样的名字都不是必须的)

    public class PersonConfig:EntityTypeConfiguration<Person>
    {
        public PersonConfig()
        {
            this.ToTable("T_Persons");
        }
    }

4. 创建 DbContext 类

    public class MyContext:DbContext
    {
        public MyContext():base("name=constr")
        {

        }
        public DbSet<Person> Person { get; set; }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Configurations.AddFromAssembly(Assembly.GetExecutingAssembly());

        }
    }

下面这句话:  modelBuilder.Configurations.AddFromAssembly(Assembly.GetExecutingAssembly() );

代表从这句话所在的程序集加载所有的继承自 EntityTypeConfiguration 为模型配置类。  

还有很多加载配置文件的做法(把配置写到 OnModelCreating 中或者把加载的代码写 死到 OnModelCreating 中),但是这种做法是最符合大项目规范的做法。

和以前唯一的不同就是:模型不需要标注 Attribute;编写一个 XXXConfig 类配置映射关系; DbContext 中 override OnModelCreating;

5. 以后的用法和以前一样。

6. 多个表怎么办?创建多个表的实体类、Config 类,并且在 DbContext 中增加多个 DbSet 类型的属性即可。

posted @ 2017-03-18 00:59  双鱼小毅  阅读(171)  评论(0)    收藏  举报