zoukankan      html  css  js  c++  java
  • EntityFramework6.X 之 Fulent

    Fulent

    Fulent是配置领域模型类的另一个方法,它比DataAnnotations提供更多的配置,提供以下三种方法映射

    Mappings

    To Database

    Model-Wide Mapping

    设置默认架构,设置经典约束

    Entity Mapping

    映射单个或多个表格或架构,映射复杂类型,继承策略

    Property Mapping

    属性、属性名、列类型、非空或非空列、列宽、列序列;并发列;外键列;配置关系

    通常Fulent是在dbContext类或派生类中重写OnModelCreating方法定义,如下假设已经定义了Student领域类和Standard领域类

     

    EntityTypeConfiguration Class

    该类是一个非常重要的fluent API函数,提供了重要的方法去配置实体类和属性,通过Entity<TEntity>()方法调用

       

    Method Name

    Description

    HasKey<TKey>

    配置实体的主键约束

    HasMany<TTargetEntity>

    从这个实体开始配置一个多对多的关系

    HasOptional<TTargetEntity>

    从这个实体配置一个可选关系,没有被关系指定的一方将可以保存到数据库中,外键可以为空

    HasRequired<TTargetEntity>

    从这个实体配置一个必须关系,只有在确定关系的情况下实体类型实例才能被保存到数据库,否则外键列将会空

    Ignore<TProperty>

    从领域模型中排除一个属性,该属性将不映射到数据库中

    Map

    允许高级配置该模型的数据库模型

    Property<T>

    配置一个已经定义的类型的结构属性

    ToTable

    将领域类映射到数据库中的表名

    1)      将类型指定为复杂类型

    按约定,没有指定主键的类型将被视为复杂类型

    Eg: modelBuilder.ComplexType<Details>();

    2)      指定不将CLR实体类型映射到数据库中的表

    简单说就是不将实体类型映射到数据库表中

    Eg: modelBuilder.Ignore<OnlineCourse>();

    Entity Mappings

    可设置默认的架构

     

    也可将实体配置到制定表

     

    将一个实体类配置到多个表中

     

    Property Mappings

     

    Property用于为每个属于实体或复杂类型的属性配置特性。Property方法用于获取给定属性的配置对象。配置字符串属性是否支持Unicode内容,默认情况下,字符串为Unicode(SQLServer中的nvarchar),可以使用IsUnicode方法指定字符串应为varchar类型

    Eg:modelBuilder.Entity<Department>().Property(t=>t.Name).IsUnicode(false);

    先将领域类定义好

     

    1)      配置主键约束和组合主键

     

    2)      配置列名、类型和顺序,不仅仅可以通过方法,也可以通过HasColumnAnnotation配置

     

    3)      配置空和非空列

     

    4)      配置列宽

     

    5)      配置并发列

     

  • 相关阅读:
    MVC和MTV模式
    Do a web framework ourselves
    什么是web框架?
    12.1.2 实战演练——编写一个适用于Android系统的网页
    10.4 实战演练
    Genymotion
    Reactive Native开发环境搭建
    第10章 使用WebKit浏览网页数据
    第7章 Android中访问网络资源
    3.4 存储简单数据的利器——Preferences
  • 原文地址:https://www.cnblogs.com/Terrece/p/6892591.html
Copyright © 2011-2022 走看看