一、实体框架(Entity FrameWork)简介

  • 简称EF

  • 与Asp.Net MVC关系与ADO.NET关系

  • ADO.NET Entity FrameWork是微软以ADO.NET为基础所发展出来的对象关系对应(O/R Mapping)解决方法,早期被称为ObjectSpace,最新版本是EF6.0【CodeOnly功能得到了更好的支持】

  • 实体框架Entity FrameWork 是ADO.NET中的一组支持开发面向数据的软件应用程序的技术。是微软的一个ORM框架。

二、什么是O/R Mapping

  • 广义上:ORM指的是面向对象的对象模型和关系型数据库接口之间的相互转换。

  • 狭义上,ORM可以被认为是,基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据访问接口。理想情况下,基于这样一个面向对象的接口,持久化一个OO对象应该不需要了解任何关系型数据库存储数据的实现细节。

EF简单演示

第一步:右击-->添加新项-->ADO.NET 实体数据模型

第二步:实体数据模型向导,默认即可

第三步:新建连接

第四步:勾上(是,在连接字符串中包含敏感数据),下一步

第五步:选择模型中包括那些数据库表,完成即可

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace EFDemoFirst
{
class Program
{
static void Main(string[] args)
{
//添加一个添加操作
//1、声明一个EF的上下文
DEMOEntities dbContext = new DEMOEntities();
//2、声明一个实体
T_Seats seats = new T_Seats();
seats.userName = "test";
seats.pwdWord = "test1123";
//3、告诉EF做一个插入操作
dbContext.T_Seats.Add(seats);
//4、告诉上下文,把实体的变化保存到数据库里面去
dbContext.SaveChanges();
Console.Write("ok");
Console.ReadKey();
}
}
}

添加DEMO

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace EFDemoFirst
{
class Program
{
static void Main(string[] args)
{
//1、声明一个EF的上下文
DEMOEntities dbContext = new DEMOEntities();
//2、声明一个实体
T_Seats seats = new T_Seats();
seats.userName = "testTest";
seats.pwdWord = "123456 ";
seats.id = ;
//3、告诉EF做更新操作
//System.Data.Entity.EntityState.Added:添加
//System.Data.Entity.EntityState.Deleted:删除
//System.Data.Entity.EntityState.Modified:修改
dbContext.Entry<T_Seats>(seats).State = System.Data.Entity.EntityState.Modified;
//4、告诉上下文,把实体的变化保存到数据库里面去
dbContext.SaveChanges(); //执行SQL脚本的地方
Console.Write("ok");
Console.ReadKey();
}
}
}

修改DEMO

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace EFDemoFirst
{
class Program
{
static void Main(string[] args)
{
//1、声明一个EF的上下文
DEMOEntities dbContext = new DEMOEntities();
////2、声明一个实体
T_Seats seats = new T_Seats();
seats.id = ; //删除的WHERE条件,不加全部删除
//3、告诉ef做更新操作
//system.data.entity.entitystate.added:添加
//system.data.entity.entitystate.deleted:删除
//system.data.entity.entitystate.modified:修改
dbContext.Entry<T_Seats>(seats).State = System.Data.Entity.EntityState.Deleted;
//4、告诉上下文,把实体的变化保存到数据库里面去
dbContext.SaveChanges(); //执行SQL脚本的地方
Console.Write("ok");
Console.ReadKey();
}
}
}

删除DEMO

         static void Main(string[] args)
{
//查询
//1、声明一个EF的上下文
DEMOEntities dbContext = new DEMOEntities();
//把这个表中的数据,全部映射打印出来
//foreach (var item in dbContext.T_Seats)
//{
// Console.WriteLine(item.id+" "+item.userName+" "+item.pwdWord);
//}
#region Linq查询
var temp = from u in dbContext.T_Seats select u;
foreach (var t in temp)
{
Console.WriteLine(t.id+" "+t.userName+" "+t.pwdWord);
}
#endregion
Console.Write("ok");
Console.ReadKey();
}

查询DEMO

         static void Main(string[] args)
{
DataModelContainer dbContext = new DataModelContainer();
var data = dbContext.CustomerSet.Where(u => u.ID > );
foreach (var item in data)
{
Console.WriteLine(item.ID+" ,"+item.CusName);
}
Console.WriteLine("ok..");
Console.ReadKey(); }

查询DEMO Lambda表达式

         static void Main(string[] args)
{
DataModelContainer dbContext = new DataModelContainer();
//升序
//var pageData = dbContext.CustomerSet.Where(u => u.ID > 2).OrderBy<Customer, int>(u => u.ID);
//降序
var pageData = dbContext.CustomerSet.Where(u => u.ID > ).OrderByDescending<Customer, int>(u => u.ID).Skip(*).Take();
foreach (var item in pageData)
{
Console.WriteLine(item.ID+","+item.CusName);
}
Console.WriteLine("ok..");
Console.ReadKey();
}

分页

EF简介及CRUD简单DEMO的更多相关文章

  1. Solr配置与简单Demo[转]

    Solr配置与简单Demo 简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目.它的官方网址在http://lucene.apache.org/sol ...

  2. Spring环境搭建及简单demo

    1. Spring框架简介(以下这段话可用于面试求职) Spring为JavaEE开发提供了一个轻量级的解决方案,主要表现为, IOC(或者叫做DI)的核心机制,提供了bean工厂(Spring容器) ...

  3. MVC5+EF6 入门完整教程4 :EF基本的CRUD

    上篇文章主要讲了如何配置EF, 我们回顾下主要过程: 创建Data Model ---> 创建Database Context --->创建databaseInitializer---&g ...

  4. 设计模式之单例模式的简单demo

    /* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...

  5. Spring的简单demo

    ---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...

  6. 使用Spring缓存的简单Demo

    使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...

  7. Managed DirectX中的DirectShow应用(简单Demo及源码)

    阅读目录 介绍 准备工作 环境搭建 简单Demo 显示效果 其他 Demo下载 介绍 DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染.交互式音乐和 ...

  8. angular实现了一个简单demo,angular-weibo-favorites

    前面必须说一段 帮客户做了一个过渡期的项目,唯一的要求就是速度,我只是会点儿基础的php,于是就用tp帮客户做了这个项目.最近和客户架构沟通,后期想把项目重新做一下,就用现在最流行的技术,暂时想的使用 ...

  9. 只是一个用EF写的一个简单的分页方法而已

    只是一个用EF写的一个简单的分页方法而已 慢慢的写吧.比如,第一步,先把所有数据查询出来吧. //第一步. public IQueryable<UserInfo> LoadPagesFor ...

随机推荐

  1. eclipse 插件编写(二)

    上篇文章简单写了下怎么新建一个eclipse插件工程,这次写一下怎么在上次的工程中添加几个菜单,如菜单栏菜单.工具栏菜单.右键菜单等. 创建一个完成的菜单需要了解三个扩展点,即menus.comman ...

  2. 解决xp越来越慢的办法(其中有些自动备份的功能)

    1.减少磁盘空间占用2.终止不常用的系统服务3.安全问题4.另外一些技巧 首先问一下,你是不是很想激活XP,不...准确的说你是不是想在ms的站上能够升级.如果答案是肯定的话,那我们就先来探讨一下安装 ...

  3. 宿主机与虚拟机系统的USB设备切换

    有时候我们需要在虚拟机的操作系统中进行一些USB设备的测试,但默认情况下USB设备是在宿主机系统里面的,那这个时候我们就要进行切换才能够达到目的,具体要怎么操作呢?下面讲解一下:   1. Ctrl+ ...

  4. linux+php+swoole解决方案

    服务器接收巨量的并发我使用linux+php+swoole解决方案.简单快速高效 并发量大 稳定 http://www.swoole.com/

  5. DataVeryLite和Nhibernate性能对比

    电脑型号:acer 4752g 电脑配置: 代码分享: class Program { static void Main(string[] args) { Debug.Listeners.Add(ne ...

  6. IT职场初体验一

    自己学习计算机专业也算有两个年头了吧,对于这个刚刚IT入门的菜鸟,对IT职场充满了好奇和憧憬,本人大学也像很多大学生一样,进入计算机专业也不是自己最初想进入的专业,进入这个原本离自己有点遥远的行业,一 ...

  7. php一个不错的分页

    1.分页源码 <?php class PageView{ /**页码**/ public $pageNo = 1; /**页大小**/ public $pageSize = 20; /**共多少 ...

  8. 案例解析:springboot自动配置未生效问题定位(条件断点)

    Spring Boot在为开发人员提供更高层次的封装,进而提高开发效率的同时,也为出现问题时如何进行定位带来了一定复杂性与难度.但Spring Boot同时又提供了一些诊断工具来辅助开发与分析,如sp ...

  9. JavaWEB路径总结

    这篇文章是小编一直想写的一篇,主要是对web阶段中各个路径进行的一些总结,希望读者看过之后对于路径方面有一个清晰的认识.首先声明一点:世界上一切东西都是相对的,对于这点而言,相信大家并不陌生,从初中开 ...

  10. Mac上PyCharm运行多进程报错的解决方案

    Mac上PyCharm运行多进程报错的解决方案 运行时报错 may have been in progress in another thread when fork() was called. We ...