EF映射入门

EF是什么?

EF(实体框架)是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM (O/R Mapping) 框架。ORM(对象关系映射框架):指的是面向对象的对象模型和关系型数据库的数据结构之间的相互转换。
其实Entity Framework的底层也是调用Ado.Net,它是更高层次的封装.作为数据访问的技术,EntityFramework的设计有高扩展性,这一点可体现在其映射定义的灵活性.简单地说,使用Entity Framework可以充分地定义与数据库表映射的实体,这个实体可以直接用于业务逻辑层或作为服务的数据契约.使用EF后,可以将实体类的设计工作完全放在EDM的设计过程中,而不需要手工写那些大同小异的代码,令人欣喜的是这个实体模型可以在运行时修改并生效,做到一改全改.我们开发时也不用再频繁地与数据库打交道,我们操作实体模型的同时EF框架自动完成了对数据库的操作.

EF框架的划分模式

主要划分为以下三种模式 DataBase First,Model Firs,CodeFirst
 DataBase First传统的表驱动方式创建EDM,然后通过EDM生成模型和数据层代码。除生成实体模型和自跟踪实现模型,还支持生成轻型DbContext。
  Model First先创建EDM模型,再生成DDL数据库脚本和模型和数据层代码。除生成实体模型和自跟踪实现模型,支持生成轻型DbContext。
  Code First手动创建POCO模型,数据层DbContext及映射关系,通过Database.SetInitializer生成数据库,这种方式较灵活,但是代码工作较多。
  在开发中,虽然Code First灵活,但是我们不可能手工去写大量的POCO类和映射关系。所以我们此次开发选择Model First.这种方式大大的方便了我们对数据库的操作,简直不能太简单啊哈。

Demo

这个是一些简单的增删改查,小编以牛腩的库建立的联系
大家也可以去试试,有问题了多多交流啊。

    newssystemEntities dbcontext =new newssystemEntities();
            #region 添加实体
            category cate = new category();
            cate.name = "薛宇测试";
            cate.id = 14;

            dbcontext.category.AddObject(cate); //代表往dbContext指向的数据中的Category表添加一条数据

            dbcontext.SaveChanges();  //真正的保存到数据库
            #endregion

            #region 修改+删除
            category cate = new category();
            cate.id = 1029;
            cate.name = "薛宇修改";

            //修改实体
            //第一步:将当前实体附加到上下文里面来进行管理
            dbcontext.category.Attach(cate);

            //把上下问dbcontext跟踪的实例:cate的状态改成修改状态
            dbcontext.ObjectStateManager.ChangeObjectState(cate, System.Data.EntityState.Modified / delete);

            dbcontext.SaveChanges();

            // O M R 框架:帮助我们跟踪实体的变化,将实体的变化映射到表的变化
            #endregion

            #region 查询
            foreach (var cate in dbcontext.category)
            {
                Console.WriteLine(string.Format("id:{0} name:{1}", cate.id, cate.name));
            }
            #endregion

            #region linq查询
            //linq表达式:返回值都是Iquerable类型
            IQueryable<category> item = (from b in dbcontext.category
                                         where b.id == 1029
                                         select b);

            foreach (var category in item)
            {
                Console.WriteLine(category.id + category.name);
            }
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值