原文地址:https://docs.efproject.net/en/latest/modeling/index.html


前言:

EntityFramework 使用一系列的约定来从我们的实体类细节创建模型。我们可以钦定一些额外的映射配置来添加、重写实体类的哪些细节应该被这些约定所发现。

这篇文章讲述了一些无论模型被存储在哪种关系型数据库中都可以生效的配置项。DataBase Provider 也同样可以针对某一种数据存储启用指定的配置项。更多相关文档请查看:Database Providers

This article covers configuration that can be applied to a model targeting any data store and that which can be applied when targeting any relational database. Providers may also enable configuration that is specific to a particular data store. For documentation on provider specific configuration see the the Database Providers section.
这段我感觉翻译的有问题,所以提供原文给大家参考

在这一章节中,你可以找到关于下面列出的约定以及配置项的信息:
下面的东西都是链接到不同小节的,我慢慢来翻译

  • 包含与排除类型
  • 包含与排除属性
  • 设置 Key (主键)
  • Generated Properties
  • Required/optional properties
  • Maximum Length
  • Concurrency Tokens
  • Shadow Properties
  • Relationships
  • Indexes
  • Alternate Keys
  • Inheritance
  • Backing Fields
  • Relational Database Modeling
    • Table Mapping
    • Column Mapping
    • Data Types
    • Primary Keys
    • Default Schema
    • Computed Columns
    • Sequences
    • Default Values
    • Indexes
    • Foreign Key Constraints
    • Alternate Keys (Unique Constraints)
    • Inheritance (Relational Database)

提示!
你可以在 GitHub 上面找到这篇文章的示例代码

配置的方法

Flunt API

我们可以在我们自己实现的上下文中通过使用 ModelBuilder 提供的 API 重写 OnModelCreating 方法来配置我们的模型类。这是最具有超级牛力的配置方法,并且,通过这种方式,我们无需修改我们的模型类。Flunt API 具有最高优先级并且会重写约定以及 data annotions。

class MyContext : DbContext
{public DbSet<Blog> Blogs { get; set; }protected override void OnModelCreating(ModelBuilder modelBuilder){modelBuilder.Entity<Blog>().Property(b => b.Url).IsRequired();}
}

Data Annotations

我们同样可以通过在我们的实体类或者其属性上面附加一些特性(attributes,比如 Data Annotations)。Data Annotations 会重写约定,但是会被 Fluent API 重写定义。

public class Blog
{public int BlogId { get; set; }[Required]public string Url { get; set; }
}

我的笔记

在Entity Framework教程(第二版)这篇博客中,hystar 大神提到了使用继承 EntityTypeConfiguration<EntityType> 的方式来添加映射,然而这种方法现在在 .Net Core 中无法使用了。

转载于:https://www.cnblogs.com/JacZhu/p/5734824.html

EntityFramework Core 学习笔记 —— 创建模型相关推荐

  1. EntityFramework Core 学习笔记 —— 包含与排除类型

    原文地址:https://docs.efproject.net/en/latest/modeling/included-types.html 在模型类中包含一种类型意味着 EF 拥有了这种类型的元数据 ...

  2. EntityFramework Core动态加载模型,我们要知道些什么呢?

    这篇文章源于一位问我的童鞋:在EntityFramework Core中如何动态加载模型呢?在学习EntityFramwork时关于这个问题已有对应童鞋给出答案,故没有过多研究,虽然最后解决了这位童鞋 ...

  3. Nancy in .Net Core学习笔记 - 初识Nancy

    原文:Nancy in .Net Core学习笔记 - 初识Nancy 前言 去年11月份参加了青岛MVP线下活动,会上老MVP衣明志介绍了Nancy, 一直没有系统的学习一下,最近正好有空,就结合. ...

  4. labview学习笔记--3D模型(3)

    labview学习笔记–3D模型(3) 这次的内容是设置模型的运动–平移和旋转 1.首先,我们先找到设置平移和设置旋转的控件:程序框图->编程->图形与声音->三维图片控件-> ...

  5. CSS 学习笔记 - 盒模型

    CSS学习笔记 - 盒模型 外边距margin 内边距padding 背景background 背景图background-image 边框border 样式 宽度 颜色 圆角 边框图片border- ...

  6. 学习笔记_OSI模型

    学习笔记_OSI模型 OSI模型简介 OSI模型各层说明 OSI模型简介 OSI/RM协议由ISO(国际标准化组织)指定,功能为 给开发者提供一个通用的.必须的概念以便开发及完善:可以用来解释连接不同 ...

  7. golang游戏开发学习笔记-创建一个能自由探索的3D世界

    此文写在golang游戏开发学习笔记-用golang画一个随时间变化颜色的正方形之后,感兴趣可以先去那篇文章了解一些基础知识,在这篇文章里,我们将创建一个非常简单(只有三个方块)但能自由探索的的3D世 ...

  8. EntityFramework Core如何映射动态模型?

    [导读]本文我们来探讨下映射动态模型的几种方式,相信一部分童鞋项目有这样的需求,比如每天/每小时等生成一张表,此种动态模型映射非常常见,经我摸索,这里给出每一步详细思路,希望能帮助到没有任何头绪的童鞋 ...

  9. 《南溪的目标检测学习笔记》——模型预处理的学习笔记

    1 介绍 在目标检测任务中,模型预处理分为两个步骤: 图像预处理:基于图像处理算法 数值预处理:基于机器学习理论 关于图像预处理,请参考<南溪的目标检测学习笔记>--图像预处理的学习笔记 ...

最新文章

  1. strcat()的实现
  2. ITK:应用Exp负图像过滤器
  3. php-fpm进程利用CPU不均问题的优化过程
  4. java常用设计模式 看了她,改变你的一生~~~
  5. 【STM32 基础实验蜂鸣器发声】
  6. 将EXCEL自定义时间格式转换为时间格式
  7. 小爱同学app安卓版_小爱同学手机版安卓下载_小爱同学app下载 v2.7.43 - 87G手游网...
  8. 循环冗余校验码解法简析
  9. 官方发布 激情世界杯】浩海技术 GHOST XP SP3 世界杯装机特别版★用稳定压倒一切!...
  10. Trying to access array offset on value of type int
  11. c++面试常见问题总结
  12. 电脑快捷键快速打开截图快捷方法
  13. 悲剧的与幽默的人生态度——宗白华
  14. 安卓开发--Eclipse搭建开发环境
  15. 如何应对面试中的手写算法
  16. 【爬虫】牛客网简易爬虫(二)用Selenium看看你投过简历的公司这个月哪些有笔试+笔试时间
  17. 八大实用的中国电子地图
  18. 最新微信固码免签监控系统+完美运营+完整数据+带搭建教程和APP
  19. python视频点播系统_精通Python(微课视频版)/Python开发视频点播大系
  20. Android系统自动升级打开,安卓系统怎么升级到Android5.0

热门文章

  1. 配置文件app.config
  2. Cornell University Designing with Microcontrollers
  3. Win7下用VS2010编译QGIS2.9.0
  4. 免费创办网站_足够好的工程来创办一家互联网公司
  5. 以太坊区块链同步_以太坊69:如何在10分钟内建立完全同步的区块链节点
  6. Android开发中应避免的重大错误
  7. 小兵别嚣张,签名算法分析
  8. 发现一个“佛系记账本”
  9. Sqoop数据分析引擎安装与使用
  10. 35.2. Subversion 版本控制