EF三种编程方式详细图文教程(C#+EF)之Database First
2015-12-20 10:08
393 查看
开始学习EF,从网上找了好多,都不是自己想要的,于是边学边把自己学习的过程写下来,以供参考。
操作环境:VS2013+SQLServer2012
Entity Framework4.1之前EF支持“Database First”和“Model First”编程方式,从EF4.1开始EF开始支持支持“Code First”编程方式,今天简单看一下EF三种编程方式。
开始介绍这三种EF操作方式之前,首先在Visual Studio 2013中建立一个数据库连接,这里我们以“EFDemo”数据库为例:
说明:在这里我用的是Lenovo\SQLEXPRESS这个数据库,当然用localdb也可以。
首先创建一个控制台应用程序,然后右键添加新建项,选择“ADO.NET Entity Data Model”,名称输入EFDemoDB:
接着选择从数据库生成:
下一步选择数据库连接,选择我们刚刚建的EFDemo数据库。
下拉框里没有,我们点击新建连接
然后选择表
创建完模型之后
你会发现Visual Studio自动为你生成了“Class、“Student”两个实体类和一个“EFDemoDB”数据库上下文操作类:
下面简单的看一下如何使用EF进行数据查询,通过下面的代码我们可以看到EF对于数据的操作入多么优雅:
运行结果:
注意:如果你的数据库表结构发生改变后,只需在模型设计视图空白处右键,选择“从数据库更新模型”接着按照向导操作即可。(如下图)
本文大部分取自崔江涛(KenshinCui),写的博客
操作环境:VS2013+SQLServer2012
Entity Framework4.1之前EF支持“Database First”和“Model First”编程方式,从EF4.1开始EF开始支持支持“Code First”编程方式,今天简单看一下EF三种编程方式。
开始介绍这三种EF操作方式之前,首先在Visual Studio 2013中建立一个数据库连接,这里我们以“EFDemo”数据库为例:
说明:在这里我用的是Lenovo\SQLEXPRESS这个数据库,当然用localdb也可以。
Database First
“Database First”模式我们称之为“数据库优先”,前提是你的应用已经有相应的数据库,你可以使用EF设计工具根据数据库生成数据数据类,你可以使用Visual Studio模型设计器修改这些模型之间对应关系。首先创建一个控制台应用程序,然后右键添加新建项,选择“ADO.NET Entity Data Model”,名称输入EFDemoDB:
接着选择从数据库生成:
下一步选择数据库连接,选择我们刚刚建的EFDemo数据库。
下拉框里没有,我们点击新建连接
然后选择表
创建完模型之后
你会发现Visual Studio自动为你生成了“Class、“Student”两个实体类和一个“EFDemoDB”数据库上下文操作类:
下面简单的看一下如何使用EF进行数据查询,通过下面的代码我们可以看到EF对于数据的操作入多么优雅:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EFDemo { class Program { static void Main(string[] args) { EFDemoEntities db = new EFDemoEntities(); //按照ID排序,并查找 var model = db.Classes.OrderBy(m => m.ID).Select(m => new { ID = m.ID, Name = m.Name }); if(model.Count() > 0) { Console.WriteLine("ID号:{0}", model.First().ID); Console.WriteLine("班级名:{0}", model.First().Name); } } } }
运行结果:
注意:如果你的数据库表结构发生改变后,只需在模型设计视图空白处右键,选择“从数据库更新模型”接着按照向导操作即可。(如下图)
本文大部分取自崔江涛(KenshinCui),写的博客
Entity Framework 5.0系列之EF概览
相关文章推荐
- C# 获取字符串对应变量名
- IOC设计模式C#
- c#中应用skinEngine给应用程序换皮肤
- C#中的using的三种用法
- 接口的作用(C#)
- 【转载】c#如何创建和使用socket链接池
- C#_File文件读取和写入
- C#:通过Visual Studio项目预生成命令获取SVN版本号
- C#_FileInfo文件属性类和DirectoryInfo文件夹属性类
- C#类型转换中关于“四舍六入,五看奇偶”
- C#设置程序开机自启动,代码别人的,没有经过测试
- C# 非顶端窗口截图
- C# 生成文字图片二维码
- C#精确判断一个人的年龄
- C#中的委托和事件
- c# 基础
- C#接口和抽象类
- 30分钟LINQ教程
- c#中变量的声明和初始化
- c#中ref与out的区别