官方地址:http://fluentdata.codeplex.com/documentation MYSQL: MySQL through the MySQL Connector .NET driver. 连接字符串: Server=127.0.0.1;Database=testDB;Uid=root;Pwd=123456; <system.data> <DbProviderFactories> <add name="MySQL Data Provider&quo…
Code samples Create and initialize a DbContextThe connection string on the DbContext class can be initialized either by giving the connection string name in the *.config file or by sending in the entire connection string. Important configurations Ign…
目录 1.前言 2.约定 2.1 主键约定 2.2 关系约定 2.3 复杂类型约定 3.数据注释 3.1 主键 3.2 必需 3.3 MaxLength和MinLength 3.4 NotMapped 3.5 复杂属性 3.6 ConcurrencyCheck 4.Fluent API 5.总结 前言 在之前的Code First示例中,我们编写好代码直接运行,就自动会自定创建数据库,并且根据定义好的类创建了对应的表,更加神奇的时候竟然还能自动创建主键.外键等等.这是如何实现的呢?如果我们想指定…
[EF Core Oracle  列名大小写问题] [EF Core Oracle column name case problem] [EF Core PostgreSql 列名大小写问题] [EF Core PostgreSql column name case problem] 大家好,我是 IKUN.... 错了错了..... 大家好...我是 玩双截棍的熊猫 ... 众所周知,EF Core是微软官方提供的ORM,功能强大,支持各种骚操作 babalaballba... 但是!当你(想…
原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/relationship-in-entity-framework-using-code-first-approach-w/ In this article, you will learn about relationships in Entity Framework using the Code First Approach with Fluent API. 在这篇文章中,你将会学习到使用EF…
I.EF里的默认映射 上篇文章演示的通过定义实体类就可以自动生成数据库,并且EF自动设置了数据库的主键.外键以及表名和字段的类型等,这就是EF里的默认映射.具体分为: 数据库映射:Code First 默认会在本地的SQL Expression数据库中建立一个和DbContext的子类的全名相同的数据库,全名指的是命名空间加上类名: 表映射:Code First 默认会按照类型名复数建立数据表,比如说Destination类对应的表名就叫Destinations: 列映射:Code First…
假设有两张表:A表和B表.A表与B表在数据库中的关系是一对多,但我们需要在EF中映射为一对一. 首先在A实体类和B实体类中互相为对方增加一个实体类的属性: public A { public B B {get;set;} } public B{ public A A {get;set;} } 然后在A的Config文件里用Fluent API配置: public class AConfig :EntityTypeConfiguration<A>{ public AConfig(){ HasOp…
现在,我们来学习怎么使用Fluent API来配置实体. 一.配置默认的数据表Schema Student实体 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EF4 { public class Student { public int StudentID { get; set; } publ…
现在,我打算学习,怎么用Fluent API来配置领域类中的属性. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EF4 { public class Student { public int StudentKey { get; set; } public string StudentName…
 什么是Fluent API? 官方答案:EF 中内嵌的约定将 POCO 类映射到表.但是,有时您无法或不想遵守这些约定,需要将实体映射到约定指示外的其他对象,所以Fluent API和注解都是一种方法,这两种方法是用来配置EF,在映射属性时绕开约定.详情参考(https://msdn.microsoft.com/zh-cn/data/jj591617) 如何访问Fluent API? 通过自定义类(继承自DbContext )的OnModelCreating方法访问. 属性映射 主要配置:主键…
在做MVC+EF CodeFirst 的Demo时,碰到的问题, 在组册用户时,要让用户输入确认密码,但是数据库中又不需要保存这个字段,解决方案很多了,这里我列出通过EF Code First的解决方案. UserInfo实体 public class UserInfoModel { [UIHint("HiddenInput")] public int UserId { get; set; } [Display(Name = "用户名")] public strin…
EF里实体关系配置的方法,有两种: Data Annotation方式配置 也可以 Fluent API 方式配置 Fluent API 配置的方法 EF里的实体关系 Fluent API 配置分为Has和With系列的方法: Optional 可选的 Required 必须的 Many 多个 [举例]: A.HasRequired(a => a.B).WithOptional(b => b.A); 这里的a=>a.B是lambda表示写法,就是找到A类里的导航属性B(习惯问题:命名a不…
使用 Fluent API 配置/映射属性和类型 使用实体框架 Code First 时,默认行为是使用一组 EF 中内嵌的约定将 POCO 类映射到表.但是,有时您无法或不想遵守这些约定,需要将实体映射到约定指示外的其他对象. 您主要可使用两种方法来配置 EF 使之在映射数据时绕开约定,这两种方法就是 注释和 EF Fluent API.注释仅涵盖一部分 Fluent API 功能,因此有一些情况是无法使用注释实现的.本文旨在演示如何使用 Fluent API 来配置属性. 除了控制映射之外,…
在前面的章节中,我们已经看到了各种不同的数据注解特性.现在我们来学习一下Fluent API. Fluent API是另外一种配置领域类的方式,它提供了更多的配置相比数据注解特性. Mappings[映射] To Database[转成数据库] Model-wide Mapping[模型映射] Set default Schema[设置默认的Schema] Set Custom Convetions[自定义约定] Entity Mapping[实体映射] To Single or Multipl…
现在使用多数的数据库是关系型数据库,那么表与表之间的关系就会显得尤其重要,对于数据的CRUD处理和以后数据的分析有很大的好处.下面是对于数据库中对表关系的理解以及在EF中使用Fluent API来创建这种关系的例子. 数据库中实体之间的联系 书中语录:在现实世界中,事务内部以及事务之间是有联系的,这些联系在计算机里面叫做实体之间的联系和实体内部的联系,内部的联系就是组成实体属性之间的联系,而实体之间的联系可以分为三类.(1:1, 1:n, n:n) 一:一对一联系(1:1) A实体集中每一个实体…
在前面的随笔<Entity Framework 实体框架的形成之旅--Code First的框架设计(5)>里介绍了基于Code First模式的实体框架的经验,这种方式自动处理出来的模式是通过在实体类(POCO类)里面添加相应的特性说明来实现的,但是有时候我们可能需要考虑基于多种数据库的方式,那这种方式可能就不合适.本篇主要介绍使用 Fluent API 配置实现Code First模式的实体框架构造方式. 使用实体框架 Code First 时,默认行为是使用一组 EF 中内嵌的约定将 P…
上一篇文章我们讲解了如何用 Fluent API 来配置/映射属性和类型,本文将把重点放在其是如何配置关系的. 文中所使用代码如下 public class Student { public int ID { get; set; } public string Name { get; set; } public DateTime EnrollmentDate { get; set; } // Navigation properties public virtual Address Address…
上篇博文说过当我们定义的类不能遵循约定(Conventions)的时候,Code First 提供了两种方式来配置你的类:DataAnnotations 和 Fluent API, 本文将关注 Fluent API.  一般来说我们访问 Fluent API 是通过重写继承自 DbContext 的类中方法 OnModelCreating. 为了便于例示,我们先创建一个继承自 DbContext 的类,以及其它的一些类以便使用 public class SchoolEntities : DbCo…
Code First约定-Fluent API配置 使用Fluent API 配置/映射属性和类型 简介 通常通过重写派生DbContext 上的OnModelCreating 方法来访问Code First Fluent API.以下示例旨在显示如何使用 Fluent API 执行各种任务,您可以将代码复制出来并进行自定义,使之适用于您的模型. 属性映射 使用Fluent API 配置/映射属性和类型 简介 通常通过重写派生DbContext 上的OnModelCreating 方法来访问Co…
通过实体框架 Code First,可以使用您自己的域类表示 EF 执行查询.更改跟踪和更新函数所依赖的模型.Code First 利用称为“约定先于配置”的编程模式.这意味着 Code First 将假设类遵循 EF 用于概念模型的架构约定.在这种情况下,EF 将能够找出自己工作所需的详细信息.但是,如果您的类不遵守这些约定,则可以向类中添加配置,以向 EF 提供它需要的信息. Code First 为您提供了两种方法来向类中添加这些配置.一种方法是使用名为 DataAnnotations 的…
在上一篇中,讲述了用数据特性的方式来标识实体与数据表之间的映射关系,在Code First方法中,还可以通过Fluent API的方式来处理实体与数据表之间的映射关系. 要使用Fluent API必须在构造自定义的DbContext时,重写OnModelCreating方法,在此方法体内调用Fluent API. 如下面代码所示: publicclass BlogDbContext : DbContext {  public BlogDbContext() : base("name=BlogDB…
前言 使用DataAnnotation非常简单,但对于EntityFramework中的特性,就要在实体类中引入EntityFramework程序集,但实体类最好能是保持与架构无关性的POCO类,才能更具通用性.所以,最好是在数据层中使用FluentAPI在数据层中进行实体类与数据库之间的映射工作.从功能上而言Data Annotations是Fluent API的一个子集, Data Annotations可以实现的功能Fluent API都能实现. Fluent API特性列举 当然,Sys…
使用 Fluent API 配置/映射属性和类型 使用实体框架 Code First 时,默认行为是使用一组 EF 中内嵌的约定将 POCO 类映射到表.但是,有时您无法或不想遵守这些约定,需要将实体映射到约定指示外的其他对象. 您主要可使用两种方法来配置 EF 使之在映射数据时绕开约定,这两种方法就是 注释和 EF Fluent API.注释仅涵盖一部分 Fluent API 功能,因此有一些情况是无法使用注释实现的.本文旨在演示如何使用 Fluent API 来配置属性. 除了控制映射之外,…
MVC中数据库表如果是一对一的主键关系时要加[Required]不然会出错Unable to determine the principal end of an association between the types Unable to determine the principal end of an association between the types '***. The principal end of this association must be explicitly co…
要更改EF中的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面;还有一个就是Fluent API,通过新增相应的配置类来覆盖默认配置.现在我们用这两个来对比了解EF中的约定配置. 主键:KEY Data Annotations:通过Key关键字来标识一个主键 [Key] public int DestinationId { get; set; } Fluent API:…
EF里的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射   I.EF里的默认映射 上篇文章演示的通过定义实体类就可以自动生成数据库,并且EF自动设置了数据库的主键.外键以及表名和字段的类型等,这就是EF里的默认映射.具体分为: 数据库映射:Code First 默认会在本地的SQL Expression数据库中建立一个和DbContext的子类的全名相同的数据库,全名指的是命名空间加上类名: 表映射:Code First 默认会按照类型名复数建立数据表…
本文转自:疯狂的我  CodeFirst Fluent API EF的好处之一就是实现了概念模型和存储模型的分离,我们可以为概念实体和存储实体起不同的名称,同时还可以将一个概念实体映射到多个存储实体,实现实体之间一对多或多对多的关系. 在CodeFirst里面为了处理这种概念实体和存储实体的对应关系,因此Fluent API就出现了. 下面就开始介绍Fluent API 先设置概念实体类 public class Blog {     public int Id { get; set; }   …
C#中设计Fluent API 我们经常使用的一些框架例如:EF,Automaper,NHibernate等都提供了非常优秀的Fluent API, 这样的API充分利用了VS的智能提示,而且写出来的代码非常整洁.我们如何在代码中也写出这种Fluent的代码呢,我这里介绍3总比较常用的模式,在这些模式上稍加改动或者修饰就可以变成实际项目中可以使用的API,当然如果没有设计API的需求,对我们理解其他框架的代码也是非常有帮助. 一.最简单且最实用的设计 这是最常见且最简单的设计,每个方法内部都返回…
EF里面的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面,还有一个就是Fluent API,通过新增相应的配置类来覆盖默认配置另外.我们主要学习Fluent API,Data Annotations可以自行去学习一下. 补充一下为什么要用Fluent API 使用DataAnnotation非常简单,但对于EntityFramework中的特性,就要在实体类中引入Ent…
转自:http://blog.163.com/m13864039250_1/blog/static/2138652482015283397609/ 用Fluent API 配置/映射属性和类型 简介 通常通过重写派生DbContext 上的OnModelCreating 方法来访问Code First Fluent API.以下示例旨在显示如何使用 Fluent API 执行各种任务,您可以将代码复制出来并进行自定义,使之适用于您的模型. 属性映射 Property 方法用于为每个属于实体或复杂…