EntityFramework Code-First 简易教程(五)-------领域类配置

前言:在前篇中,老是把领域类(Domain Class)翻译成模型类,由于个人理解它就是一个现实对象的抽象模型,不知道对不对。以防止未来可能的歧义,这篇开始仍是直接对Domain Class直译。html

 

前面咱们学习了默认Code-First约定,Code-First使用默认约定根据领域类构建概念模型,Code-First利用一个设计模型参考做为约定来覆盖配置,意思就是咱们能够经过配置领域类来覆写这些约定以提供给EF须要的信息,有两种方法配置领域类。app

  1. 数据注释(DataAnnotations)
  2. Fluent API

 

数据注释(DataAnnotation):

数据注释是一个简单的配置基础特性,咱们能够将其应用在领域类或者领域类的属性上,大多数特性在System.ComponentModel.DataAnnotations命名空间下,可是,数据注释仅仅提供Fluent API配置的一个子集,也就是说若是咱们在数据模型中找不到一个特性,那就必须使用Fluent API进行配置了。dom

下面例子展现了使用了数据注释的Sudent类:ide

[Table("StudentInfo")]
public class Student
{
    public Student() { }
        
    [Key]
    public int SID { get; set; }

    [Column("Name", TypeName="ntext")]
    [MaxLength(20)]
    public string StudentName { get; set; }

    [NotMapped]
    public int? Age { get; set; }
        
        
    public int StdId { get; set; }

    [ForeignKey("StdId")]
    public virtual Standard Standard { get; set; }
}

 

Fluent API:

Fluent API 配置是做为EF从领域类构建模型的应用,咱们能够经过覆写DbContext类的OnModelCreating方法来注入配置,以下代码所示:学习

public class SchoolDBContext: DbContext 
{
    public SchoolDBContext(): base("SchoolDBConnectionString") 
    {
    }

    public DbSet<Student> Students { get; set; }
    public DbSet<Standard> Standards { get; set; }
    public DbSet<StudentAddress> StudentAddress { get; set; }
        
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        //Configure domain classes using Fluent API here

        base.OnModelCreating(modelBuilder);
    }
}
   

咱们也能够使用一个DbModelBuilder类的实例对象来配置领域类ui

 

后面的文章咱们会详细介绍数据注释和Fluent API的使用方法。spa

相关文章
相关标签/搜索