011.EF实体框架(入门)

1>ASP.NET MVC开发中模型的实现方法
模型的实现方法

两种方法1手动2自动(工具 EF)
1.1手动创建模型(写好模型元数据)【练习过了 项目!】
前提条件:先手动创建数据库和表
(模型:实体类,实体访问类,Sqlhelper)
(Sqlhelper使用ADO.NET传统方法实现)

1.2使用EF(Entity Framework:实体框架)创建模型

2>EF的概念
2.1什么是EF
***EF是 实体框架 (Entity Framework)的简称,
***EF 可以用来定义模型类并操作数据。(生成模型层)

***EF是微软自己的ORM 。
ORM:对象关系映射(Object Relational Mapping )的简称,
实现 程序对象到关系数据库数据的相互转换
(根据表生成实体类+数据访问类(数据上下文))
优点:
实现生成模型的半自动化,提升开发效率
ORM让程序员尽可能以OO的方式操作数据库,sql尽可能少
(便于团队开发,分工)
***(了解)EF属于.NET Framework包含的组件,
安装ASP.NET MVC3时会自动安装EF ,EF程序集自动加 到项目中了

EF推出较晚,但发展较快,配置简单,学习容易,
对sql server的支持非常好
EF适合中小型、业务简单的系统,它能够提升开发效率,
为程序员分担繁琐的工作。

2.2EF的方法
方法1:数据库优先的开发模式
先手动创建数据库和表,
然后用EF创建模型
方法2:代码优先(“code-first”) 的开发模式
先手动创建模型,
然后用EF(根据模型)创建数据库
(了解):
EF 包含ObjectContext 和DbContext ,两者的区别
ObjectContext是一种数据库优先的开发模式
System.Data.Objects.ObjectContext
DbContext是代码优先的开发模式
System.Object??System.Data.Entity.DbContext

3>使用数据库优先的开发模式做项目
例如:开发航班信息管理系统,
使用数据库优先的开发模式做
(学生信息,好友,照片)
注意1:在同一个项目中,只能使用一种开发模式
使用数据库优先,就不能使用代码优先
注意2:如果不想手动更正错误,记住
表要包含一个id字段,而且是整数类型,自增长同时是主键
其他字段最好不要含有id(id,flightid)
步骤1:先手动创建数据库和表
步骤2:然后用EF创建模型(ObjectContext)
1》选中Model文件夹,添加:数据(ADO实体数据模型)
下一步下一步,...确定
2》重要:编译!!!!
3》添加控制器(写方法,添加视图,设计视图)
自动生成
步骤3:本地化和完善(小问题解决)
练习:使用数据库优先的方法,完成通讯录管理系统

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
4>使用代码优先(“code-first”) 的开发模式做项目
步骤1:先手动创建模型,
1.1 (注意:)配置连接串(可以不配置:
默认数据库服务器是:.\sqlexpress)
如果默认数据库服务器不能登录,必须配置!
就设置为.那个服务!,如下:
注意:providerName这个是必须要写的
<connectionStrings>
<add name="MyDb"
connectionString="server=.;database=MyDb;integrated security=true;"
providerName="System.Data.SqlClient" />
</connectionStrings>
1.2 定义实体类(模型类),添加元数据
注意:要包含一个int类型的id;
1.3 定义数据上下文
(注意:如果使用默认的数据库服务器,就不用写构造函数;
否则需要些构造函数,访问那个MyDb)
要引入命名空间System.Data.Entiy
两个数据类型 DbContext;DbSet<>
1.4 编译!!!!
步骤2:然后用EF(根据模型)创建数据库
问题:数据库名称太长(默认配置)
希望数据库名称合适一些,最好配置连接串!
模型里边的修改完,一般控制器视图都要重做(或者取修改)
注意:模型里边修改,一般控制器视图都要重做(或者取修改),
甚至数据库都要删除重建
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
练习2:开发学生管理系统,使用代码优先的开发模式
步骤和注意事项如上!!!

—————————————————————————
问题:万一系统使用了一段时间,已经放入了很重要数据,
模型变了。数据库就不能简单的删除了
(把原来的数据备份,把数据保留
重建数据库
把原来的数据导入到新的数据库中)数据迁移
数据迁移如何完成
以前:手动完成
现在EF的高版本,也提供了自动管理原有数据的功能(但是
可靠性稳定性 不是很好)
质疑:代码先行的方法到底有没有价值和意义
1》实际项目中 如果用EF,一般使用数据先行的方法
不用代码先行的方法
2》为什么微软要提供代码先行的方法??
不是为了让你去使用它做一个新项目
而是利用这种方式去研究一个已有的项目!!1
—————————————————————————
代码先行方法:
1)如果有多个表,那就写多个模型
表之间有主从关系,可以在两个模型类添加导航属性
(注意 分清,哪个是主表,哪个是从表)
导航数据在表中不出现,用于生成外键!!

2)添加控制器
先添加主表的控制器(数据库会生成 主表和从表)
先添加主表的控制器同时也生成了主表对应的视图(页面)
再添加从表的控制器,从而生成从表对应的视图(页面)

选一个页面做主页面,把其他控制器连接起来!
——————————————————————————

时间: 2024-10-17 22:26:19

011.EF实体框架(入门)的相关文章

C#.Net EF实体框架入门视频教程

当前位置: 主页 > 编程开发 > C_VC视频教程 > C#.Net EF实体框架入门视频教程 > kingstone金士顿手机内存卡16G仅65元 1.EF实体框架之增加查询 上传日期:2014-09-14 18:48:21  相关摘要:  - 破解无线路由器密码需要增加那些设备? - 桌面上的东西删除的话就会出现文件正在删除的图标,但是这个图标永远不消失 - sql语句查询一张表的3-6条数据,6-9条数据,这样的sql这么写呢 2.EF修改删除和延时加载 上传日期:2014

EF实体框架之CodeFirst一

对于SQL Server.MySql.Oracle等这些传统的数据库,基本都是关系型数据库,都是体现实体与实体之间的联系,在以前开发时,可能先根据需求设计数据库,然后在写Model和业务逻辑,对于Model类基本都是和表的字段对应着,而表中存的每条记录又和类的实例对象对应着,有了这个对照关系,就是能不能只在一边设计,在数据库设计表或在VS中设计Model,然后直接生成另一边,这样就省了好多时间成本.于是有了ORM,Object Relation Mapping,对象关系映射.既然可以根据Mode

EF实体框架创建方法

EF实体框架创建方法: 1.添加EF框架: 在工程中,先添加文件夹:DataModel(方便管理),在文件夹中再添加新项:数据--ADO.Net实体数据模型: 命名为: DataModel.edmx.并勾选“确定对象名称的单复数形式”(会创建集合和项的名称区别). 2.数据模型文件说明: DataModel.edmx:生成的数据模型文件包.DataModel.Context.cs:包括模型中,所有表集合的管理类.DataModel.tt子节点下的文件:表数据类的定义(映射). 3.问题: 1.生

EF实体框架数据操作基类(转)

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Data.Entity.Infrastruct

EF实体框架数据操作接口(转)

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Linq;using System.Linq.

EF实体框架数据操作接口

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Linq;using System.Linq.

EF实体框架数据操作基类

//----------------------------------------------------------------// Copyright (C) 2013 河南禄恒软件科技有限公司// // 功能描述:实体框架数据仓储的操作接口,包含增删改查接口////----------------------------------------------------------------using System;using System.Data.Entity.Infrastruct

BIM工程信息管理系统-EF实体框架数据操作基类

EF实体框架数据操作基类主要是规范增.改.查.分页.Lambda表达式条件处理,以及异步操作等特性,这样能够尽可能的符合基类这个特殊类的定义,实现功能接口的最大化重用和统一. 1.程序代码 /// <summary> /// MSSQL数据库 数据层的父类 /// </summary> /// <typeparam name="T"></typeparam> public class BaseDAL<T> where T :

EF实体框架初了解

什么是实体(Entity),相信大家都认识过了,就是我们重构机房收费系统的时候,那个在三层之间负责传数据的层嘛.在一个作用域内数据类型是如何定义的. 一.实体框架(EntityFramework)是什么呢? Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架.EF是开发可以采用特定于域的对象和属性的形式使用数据,不用开路存储数据的技术数据库表和列.形成了更高一个层面上的抽象,并且能够以相对传统应用程序更少的代码. 二.可能你又会