Entity Framework(EF的Database First方法)
EntityFramework,是Microsoft的一款ORM(Object-Relation-Mapping)框架。同其它ORM(如,NHibernate,Hibernate)一样,
一是为了使开发人员以操作对象的方式去操作关系型数据表。
二是为了屏蔽底层不同厂商的数据库,开发人员面向ORM框架编写数据的CRUD(Create,Retrieve,Update,Delete)操作,再由ORM框架将这些操作翻译成不同数据库厂商的语言。
从EF 4.X开始支持三种构建方法:1. Database First方法。2.Model First方法。3.Code First 方法。

本次测试以Visual Studio2013 / MS Sql Server2012 / Entity Framework 6.X 测试EF
Database First Demo
1:打开SQLServer2012,使用下面SQL文本创建MyFirstEF数据库及CustomerInfo/OrderInfo表格
create database MyFirstEF
on primary
(
name='MyFirstEF.mdf',
--修改为自己电脑上SQL DB路径
filename='D:\yangZ_MSSQL\MyFirstEF.mdf',
size=5mb,
maxsize=100mb,
filegrowth=10%
)
log on
(
name='MyFirstEF_log.ldf',
--修改为自己电脑上SQL DB路径
filename='D:\yangZ_MSSQL\MyFirstEF_log.ldf',
size=2mb,
maxsize=100mb,
filegrowth=5mb
)
go use MyFirstEF
go create table CustomerInfo
(
id int identity(1,1) primary key,
customerName nvarchar(100) not null,
customerDate datetime
)
go create table OrderInfo
(
id int identity(1,1) primary key,
orderName nvarchar(100),
customerId int
)
go alter table OrderInfo
add constraint FK_OrderInfo_CustomerInfo foreign key(customerId) references CustomerInfo(id)
go insert into CustomerInfo
select 'aa',GETDATE() union all
select 'bb',GETDATE() union all
select 'cc',GETDATE() union all
select 'dd',GETDATE()
go insert into OrderInfo
select 'bike1',2 union all
select 'bike2',2 union all
select 'car1',3 union all
select 'car2',3 union all
select 'chezi1',4 union all
select 'chezi2',4
go select * from CustomerInfo
go select * from OrderInfo
go
--create SQL

2:新建ConsoleApplication应用程序

3:在EFDataBaseFirstDemo上 右键-->新建-->新建项-->数据-->ADO.NET实体数据模型,选择从数据库生成(Database First)

选择数据库,用户名,密码等,这和普通的链接数据库操作一样,最后生成的配置文件会保存在App.config文件中

点击下一步,选择数据库表格,这里我们选择CustomerInfo 和OrderInfo表格,勾选[确定所生成对象名称的单复数形式][在模型中包含外键列]
模型命名空间可以修改为自己需要的,这里我使用默认的模型命名空间

点击完成,可能会出现以下警告,直接点击[确定],生成的EF实体图本质是xml

EF实体图,这时候记得点击保存按钮(Ctrl+S),保存生成的EF实体图

最后整个项目源码结构如下图所示:

最后在ConsoleApplication中做一个简单的查询Demo
DbContext context = new MyFirstEFEntities(); var rows = context.Set<CustomerInfo>().Select(c => c.customerName);
foreach (var row in rows)
{
Console.WriteLine(row);
}
Console.WriteLine("Database First Finish");
Console.ReadKey();
PS:使用EF Database First时,若修改数据库表结构,或者字段,需要在**.edmx中做如下操作,然后点击保存

Entity Framework(EF的Database First方法)的更多相关文章
- Entity Framework(EF的Code First方法)
EntityFramework,是Microsoft的一款ORM(Object-Relation-Mapping)框架.同其它ORM(如,NHibernate,Hibernate)一样, 一是为了使开 ...
- Entity Framework(EF的Model First方法)
EntityFramework,是Microsoft的一款ORM(Object-Relation-Mapping)框架.同其它ORM(如,NHibernate,Hibernate)一样, 一是为了使开 ...
- ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First
ASP.NET Core 开发-Entity Framework Core 1.0 Database First,ASP.NET Core 1.0 EF Core操作数据库. Entity Frame ...
- 【极力分享】[C#/.NET]Entity Framework(EF) Code First 多对多关系的实体增,删,改,查操作全程详细示例【转载自https://segmentfault.com/a/1190000004152660】
[C#/.NET]Entity Framework(EF) Code First 多对多关系的实体增,删,改,查操作全程详细示例 本文我们来学习一下在Entity Framework中使用Cont ...
- Visual Studio Entity Framework (EF) 生成SQL 代码 性能查询
Visual Studio Entity Framework (EF) 生成SQL 代码 性能查询 SQL 中,有SQL Server Profiler可以用来查询性能以及查看外部调用的SQL ...
- ASP.NET Core 开发 - Entity Framework (EF) Core
EF Core 1.0 Database First http://www.cnblogs.com/linezero/p/EFCoreDBFirst.html ASP.NET Core 开发 - En ...
- [转]Using Entity Framework (EF) Code-First Migrations in nopCommerce for Fast Customizations
本文转自:https://www.pronopcommerce.com/using-entity-framework-ef-code-first-migrations-in-nopcommerce-f ...
- ADO.NET Entity Framework(EF)
ylbtech-Miscellaneos: ADO.NET Entity Framework(EF) A,返回顶部 1, ADO.NET Entity Framework 是微软以 ADO.NET 为 ...
- Entity Framework公共的增删改方法
using System; using System.Collections.Generic; using System.Data.Entity; using System.Data.Entity.I ...
随机推荐
- javac和java的使用
java -Xmx128m -Dfile.encoding=gbk -cp ./;bin/;./*;lib/* com.qianlima.crawlOthers.Icp REM REM block e ...
- PHP面向对象之接口
接口(interface)技术 什么是接口? 先看抽象类: abstract class 类名 { 属性1: 属性2: ..... 非抽象方法1: 非抽象方法2: ...... 抽象方法1: 抽 ...
- 使用python操作Memcache、Redis、RabbitMQ、
Memcache 简述: Memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的.需要 ...
- 【Python】Python的time和datetime模块
time 常用的有time.time()和time.sleep()函数. import time print(time.time()) 1499305554.3239055 上面的浮点数称为UNIX纪 ...
- 最小费用流spfa最小费用路算法模板(pascal)
3.30: 这篇是以前写的,用的还是指针存图,今天又写了个代码,码风稍微好看点. 传送门:http://www.cnblogs.com/Currier/p/6648685.html --------- ...
- C++解析(9):关于const和引用的疑问
0.目录 1.关于const的疑问 2.关于引用的疑问 2.1 引用与指针 2.2 从C++语言与C++编译器角度看引用 2.3 从工程项目开发看引用 3.小结 1.关于const的疑问 const什 ...
- 洛谷 P3391 【模板】文艺平衡树(Splay)
题目背景 这是一道经典的Splay模板题——文艺平衡树. 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1, ...
- 【BZOJ3625/CF438E】小朋友和二叉树(多项式求逆,多项式开方)
[BZOJ3625/CF438E]小朋友和二叉树(多项式求逆,多项式开方) 题面 BZOJ CodeForces 大致题意: 对于每个数出现的次数对应的多项式\(A(x)\) 求\[f(x)=\fra ...
- 洛谷 P2123 皇后游戏 解题报告
P2123 皇后游戏 题意: 给定\(T\)组长为\(n\)的\(A\),\(B\)数组和\(C\)的计算方法,求一种排列方法,使最大的\(C\)最小化. 数据范围: \(1 \le T \le 10 ...
- HSTS的来龙去脉
前言 安全经常说“云.管.端”,“管”指的是管道,传输过程中的安全.为了确保信息在网络传输层的安全,现在很多网站都开启了HTTPS,也就是HTTP+TLS,在传输过程中对信息进行加密.HTTPS使用了 ...