EF学习和使用(一)Database First

上篇博客中介绍了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();
        }
    }
}

执行结果如下图:

这里写图片描述




注意:如果咱们的数据库表结构发生改变后,只需在模型设计视图空白处右键,选择“从数据库更新模型”接着按照向导操作即可将模型更新。

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 43
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值