上篇博客中介绍了ORM思想,可以说ORM思想在数据交互方面给我们带来了一次变革。他能够自动实现Entity实体的属性与关系型数据库字段的映射,增删改查的sql脚本由ORM来自动生成,使我们编码时不用考虑数据库数据结构,而是以操作实体对象的形式来完成与数据库的交互。与传统开发方式相比ORM可以使我们编写更少的代码来创建和维护应用程序。不得不说ORM这种思想的确优雅。
实现ORM思想的框架有很多,有重型的 Hibernate,EF,Nhibernate,微型的dapper,Fetalpoco等, 两类框架各有千秋,需要按照系统情况进行选择。重型的ORM框架适合与企业内部系统,使用人数最好一万以内。如果是互联网系统则应该选择微型的ORM框架。
ITOO .net版选用的是EntityFramework,对于EF已经学习和使用过一段时间了,现在来对EF做个系列的总结。
Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,EF4.1之前EF支持“Database First”和“Model First”编程方式,从EF4.1开始EF开始支持支持“Code First”编程方式,今天咱们先从最简单的Database First开始说起,建立起咱们的第一个EF程序。
“Database First”模式顾名思义:“数据库优先”,使用这种模式的前提是应用程序已经拥有相应的数据库,咱们可以使用EF设计工具由数据库生成数据模型类,也可以使用Visual Studio模型设计器修改这些模型之间对应关系。
第一步:
首先创建一个控制台应用程序,然后右键添加新建项,选择“ADO.NET 实体数据模型”,名称输入ModelTest:
第二步:
接着选择来“自数据库的EF设计器”即DataBaseFirst:
第三步:
选择新建连接并设置连接属性:
第四步:
然后选择刚才新建的连接
第五步:
然后选择要映射的“User”表,完成:
创建完模型之后,你会发现Visual Studio自动为你生成了“User”实体类和一个“EFTestEntitiesContext”数据库上下文操作类:
下面简单的看一下如何使用EF进行数据查询,查询可用两种方式,Linq和Lambda。
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EFDBFirst
{
class Program
{
static void Main(string[] args)
{
//实例化数据库上下文
EFTestEntities dbcontext = new EFTestEntities();
//使用Lambda表达式查询数据
var user = dbcontext.User.Where(o => o.Name == "qiumuxiaq141812").ToList();
//Linq语句查询
var user1 = from o in dbcontext.User
where o.Name == "qiumuxiaq141813"
select o;
//打印查询结果
if (user.Any())
{
Console.WriteLine("Lambda方式:"+ user.First().Name + "----" + user.First().Sex);
Console.WriteLine("Linq方式:" + user1.First().Name + "----" + user1.First().Sex);
}
Console.Read();
}
}
}
执行结果如下图:
注意:如果咱们的数据库表结构发生改变后,只需在模型设计视图空白处右键,选择“从数据库更新模型”接着按照向导操作即可将模型更新。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-12 19:22:26