zoukankan      html  css  js  c++  java
  • Entity Framework Core 之Modeling Relational Database Modeling

    该模块主要是针对关系型数据库进行建模

    Table Mapping (表的映射)

    按照约定每一个实体都默认根据实体名称作为表名映射到数据库中,但是也可手工指定

    DataAnnotations:TableAtrribute代表数据库表

    FluentAPI:将CLR实体类型映射到数据库中的特定表

     

    Column Mapping (列映射)

    按照约定,实体中每一个属性都将以他们的名称为数据库列名存储,但可指定特定名词

    DataAnnotationsColumnAtrribute 代表指定列名

     

    FluentAPI

     

    Data Types (数据类型)

    默认情况下数据提供者将根据实体的CLR类型选择合适的数据库中数据类型来存储相应的实体信息。如SQLServer使用datetime2(7) for DateTime properties, and nvarchar(max) for string properties (or nvarchar(450) for string

    DataAnnotations

     

    FluentAPI

     

    也可以指定特定的数据提供者中的类型

     

    Primary Keys

    可参照上一节中Key Primary (主键)

    Default Schema

    若是没有显示指定数据库框架,则会采用默认框架。通常默认框架根据数据库提供者来决定的,如SQL Server采用dbo框架,而SQLite不采用框架,选择默认框架只能通过FlentAPI来设置:

     

    Computed Columns (计算列)

    计算列就是数据库的某一列不要赋值,它是通过其他列的数据计算而得

    FluentAPI

     

    Sequences (序列)

    序列就是在数据库中指定一列用来递增的数据,不跟表关联,只是用来表示序号。

    FluentAPI可指定序列的开始值、递增量和默认值

     

    Default Values (默认值)

    可为实体模型对象的属性指定默认值,若是未给实体赋值,则采用默认值填充数据库

    FluentAPI

     

    同样也可以指定SQL函数来获取默认值

     

    Indexes

    可参上述照Indexes(索引)

    Foreign Key Constraints(外键约束)

    默认情况下在依赖体中显式存在外键属性时,则不需要采用特性形式标记导航属性,EF会自动根据外键属性匹配主体的主键作为外键;当按照约定没有发现外键属性时,则采用手动设置特性外键

    FluentAPI:EF Core中不支持DataAnnotations

    默认情况外键约束的名称格式是FK_<dependent type name>_<principal type name>_<foreign key property name>,可手工指定

     

    Alternate Keys(Unique Constraints)

    唯一约束包含于每个模型中的唯一键中,默认情况下唯一约束命名以AK_<type name>_<property name>格式,且唯一约束只能通过FluentAPI进行设置

     

    Inheritance(Relational Database)

    默认情况继承映射数据库将采用Table-per-Hierarchy(TPH)模式。TPH即采用一张表存储子类和父类的所有属性,父类将不另外用表存储,通过单独的鉴别列(Discriminator)来为每一行记录做标识

     

    FluentAPI

  • 相关阅读:
    学生免费注册Pycharm
    CSS笔记
    加载CIFAR数据集时报错的大坑
    发布小程序
    微信中的动图如果发朋友圈
    安卓第一个小项目
    转换小写字母
    1小时搞定vuepress快速制作vue文档/博客+免费部署预览
    干货满满!如何优雅简洁地实现时钟翻牌器(支持JS/Vue/React)
    JavaScript 加减危机——为什么会出现这样的结果?
  • 原文地址:https://www.cnblogs.com/Terrece/p/8064735.html
Copyright © 2011-2022 走看看