随笔分类 - Entity Framework
摘要:一对一关系 如图,无需专门指定,系统会默认在Person表中生成字段Pet_Id为Pet表的外键(一对一)。 Require:必要的(一对一) Optional:可选的(一对零) Principal:主要的 Dependent:次要的 使用WithRequiredPrincipal会在Pet表中生成
阅读全文
摘要:如何访问Fluent API: 在自定义上下文类中重写OnModelCreating方法,在方法内调用。 注:用法基本一样,配置类中的this就相当于modelBuilder.Entity<Person>() 配置模型 Model-wide Configurations modelBuilder.H
阅读全文
摘要:数据注解特性是.NET特性,可以在EF或者EF Core中,应用于实体类上或者属性上,以重写默认的约定规则。 在EF 6和EF Core中,数据注解特性包含在System.ComponentModel.DataAnnotations命名空间和System.ComponentModel.DataAnn
阅读全文
摘要:当我们不想使用EF的默认约定时,可以手动配置领域类,但还是推荐少配置,Simple is best! 两种配置方式: 1.Data Annotation Attributes【数据注解特性】 数据注解是一种基于配置的简单特性,你可以应用于你的领域类以及领域类的属性上。数据注解特性,不仅适用于EF、还
阅读全文
摘要:CodeFirst 工作流程 创建或修改领域类-->使用数据注解或者Fluent API来配置领域类-->使用自动数据库迁移技术或者基于代码的数据库迁移技术来创建数据库。 CodeFirst默认约定 约定就是一系列的默认规则,通过这些规则,在使用EF Code-First的时候,可以自动的基于你的领
阅读全文
摘要:相对于sqlserver数据库,mysql的配置过程相对麻烦一些,我们从0讲起。 1.新建一个控制台应用程序 右键点击引用--管理NuGet程序包,搜索Mysql.Data.Entity并安装,安装完成后在已安装选项下会有以下三项: 在App.config文件中添加: <connectionStri
阅读全文
摘要:预先加载 在对一种类型的实体进行查询时,将相关的实体作为查询的一部分一起加载。预先加载可以使用Include()方法实现。 在此需要说明的是:EF中有两种表关联的方法,一种是Join()方法,一种是Include()方法 Join()方法使用说明:两表不必含有外键关系,需要代码手动指定连接外键相等(
阅读全文
摘要:延迟加载只对 关联/导航 属性(Navigation Property)有用,普通属性没有这个东西。 延迟加载是一条一条的读取属性,调用一次,读取一次。 条件: context.Configuration.ProxyCreationEnabled = true;(默认为true) context.C
阅读全文
摘要:因为ADO.NET标配是访问SQL SERVER数据库,那么如果需要访问MySQL数据库,那么ADO.NET五个对象也必须转换。 访问 SQL SERVER 的ADO.NET对象 1.SqlConnection 2.SqlCommand 3.SqlDataAdapter 4.SqlDataReade
阅读全文
摘要:1.Linq to Entity(L2E)查询 默认返回IQueryable类型 2.原生SQL查询和操作 ①DbSet.SqlQuery()和Database.SqlQuery() 返回DbSqlQuery类型,该类型实现了IEnumberable接口 ②Database.ExecuteSqlCo
阅读全文
摘要:使用EF实现实体持久化(保存)到数据库有两种情况:在线场景和离线场景。 1.在线场景 在线场景中,context是上下文实例,读写都通过一个context。 这种方案适用于连接本地数据库或同一网络上的数据库。 优点: 执行速度快。上下文跟踪所有实体,并在实体发生更改时自动设置适当的状态。 缺点: 上
阅读全文
摘要:导航属性的理解: 指数据库的表所对应的实体类,除了要有每个字段所对应的属性之外,还应该有一个与之有关联的表的属性,一对一的关系就是关联表的类型,一对多的关系就是关联表的类型的ICollection的泛型集合。(结合下面例子理解) 1.一对一关系类型 上图中Student和StudentAddress
阅读全文
摘要:DbContext是实体类和数据库之间的桥梁,DbContext主要负责与数据交互,主要作用: 1、DbContext包含所有的实体映射到数据库表的实体集(DbSet < TEntity >)。 2、DbContext 将LINQ-to-Entities查询转换为SQL查询并将其发送到数据库。 3、
阅读全文
摘要:1.EF基本的CRUD(增删改查)流程 2.EF的工作过程简析 EDM--Entity Data Model--实体数据模型 概念模型: EF通过领域类,上下文类,默认约定和配置构建概念模型。 存储模型: EF为底层数据库架构构建存储模型。在代码优先方法中,根据概念模型进行推断来构建。在数据库优先模
阅读全文
摘要:1.新建一个控制台应用程序 2.右键引用--管理NuGet程序包,安装如下几项 3.打开App.config文件,加入如下代码: <connectionStrings> <add name="conn" connectionString="server=localhost;port=3306;uid
阅读全文
摘要:vs默认无法直接连接mysql,需要我们自己配置环境。 1.下载mysql-installer-community-8.0.18.0.msi 下载地址:https://dev.mysql.com/downloads/windows/installer/8.0.html 2.安装以下几项 点击右面的A
阅读全文
摘要:ORM:Object Relation Mapping 对象关系映射,用操作对象的方式操作数据库。 基础知识:linq和ado.net。 EF是一个适用于.NET开发的开源ORM框架。 它工作在业务实体(域类)和数据库之间,它保存实体属性中的数据到数据库,也可以从数据库中检索数据并自动将其转换为实体
阅读全文

浙公网安备 33010602011771号