标签:class 空值 bit not 设置 tip 环境 nvarchar fluent
EntityFramework 实体关系数据模型(DO.NET Entity Framework)
ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。该框架曾经为.NET Framework的一部分,但version 6之后从.NET Framework分离出来。
在项目中使用Entity Framework
要得到最高版本的Entity Framework 程序包,可以通过扩展与更新或者右击项目-引用-管理NuGet程序包。
创建Entity实体关系模型
右击项目 - 添加 - 数据 - ADO.NET实体数据模型
来自数据库的EF设计器:通过已经事先创建的数据库和表,EF框架自动根据数据库生成表实体。
空EF设计器模型:通过EF设计器的可视化界面设计实体关系图,EF框架自动根据关系图生成数据库、表和对应的实体类。
Code First模型:通过全手工创建实体,运行代码后自定生成数据库和表。
添加完成后在项目中会包含一个后缀为edmx文件,此文件描述模型的架构。这三个文件分别是模型的XML表示,数据库构架的XML表示、映射表与实体的关系的XML表示。
xxx.context.tt(数据库操作上下文)
xxx.tt(实体模型)
Code First模式
DbContext类(System.Data.Entity.DbContext)
这是一个操作实体的上下文对象,它比ObjectContex更轻量级,推荐使用DbContext。DbContext内部维护了数据库连接、管理实体数据、生成数据库操作语句、将数据持久化到数据库。它包含所有的实体对象的集合(可查询数据集),通过它的泛型集合属性DbSet<T>存储这些数据集。你所创建的类是如何成为Entity实体的呢?很简单,完成以下三步:
1.创建一个类库,命名为DataAccess,用以表示数据访问层,创建一个BreakAwayContext的类,使其从DbContext派生。键入以下代码:
2.创建一个类库,命名为Model,用以表示实体层,创建两个实体类:Destination和Lodging。前者表示旅行的目的地,后者表示住宿。键入以下代码:
3.创建一个控制台应用程序,命名为BreakAwayConsole,用以表示显示层。添加对Entity framework的引用,这样会自动在App.config中生成默认的数据库配置信息节点:<entityFramework>,将其全部删除,再添加一个ConnectionString,configSections好像必须是configuration的第一个配置节,所以ConnectionString配置节只能放在configSections后面。
4.添加DataAccess对Model的引用,添加BreakAwayConsole对DataAccess和Model的引用后,在控制台中创建一条记录并插入数据库,此时DbContext会自动为你创建数据库和表。
ctrl+F5运行程序,等待片刻数据库就创建完毕了。
字段属性映射的默认约定
属性与主键约定:Id或类名Id将默认自动映射为主键。
属性与字符约定:字符类型的属性默认自动映射为nvarchar(max) null。
属性与bool约定:布尔值类型的属性默认自动映射为bit
属性与byte数组约定:byte数组类型的属性默认自动映射为varbinary ( max)
集合属性与主外键约定:泛型集合中的类会被视为外键表,外键表总是有一个外键引用了当前具有泛型集合的类,外键可以是一个int也可以直接是它所引用的类类型。如下:
配置实体字段属性
有两种方式可为字段增加描述性配置,Data Annotations和Fluent API,前者使用简单,后者提供更强大的清洁的配置。(如果不喜欢到处贴标签)
1.Data Annotations配置(System.ComponentModel.DataAnnotations)
2.Fluent API配置 (System.Data.Entity.ModelConfiguration和System.Data.Entity)
实体关系的默认约定
假设有X和Y两个类。
配置实体关系
示例
.NET - EntityFramework 实体关系数据模型
标签:class 空值 bit not 设置 tip 环境 nvarchar fluent
原文地址:http://www.cnblogs.com/myrocknroll/p/7392360.html