zoukankan      html  css  js  c++  java
  • EF简介及CRUD简单DEMO

    一、实体框架(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 实体数据模型

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

    第三步:新建连接

     

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

     

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

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace EFDemoFirst
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             //添加一个添加操作
    14             //1、声明一个EF的上下文
    15             DEMOEntities dbContext = new DEMOEntities();
    16             //2、声明一个实体
    17             T_Seats seats = new T_Seats();
    18             seats.userName = "test";
    19             seats.pwdWord = "test1123";
    20             //3、告诉EF做一个插入操作
    21             dbContext.T_Seats.Add(seats);
    22             //4、告诉上下文,把实体的变化保存到数据库里面去
    23             dbContext.SaveChanges();
    24             Console.Write("ok");
    25             Console.ReadKey();
    26         }
    27     }
    28 }
    添加DEMO
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace EFDemoFirst
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             //1、声明一个EF的上下文
    14             DEMOEntities dbContext = new DEMOEntities();
    15             //2、声明一个实体
    16             T_Seats seats = new T_Seats();
    17             seats.userName = "testTest";
    18             seats.pwdWord = "123456 ";
    19             seats.id = 4;
    20             //3、告诉EF做更新操作
    21             //System.Data.Entity.EntityState.Added:添加
    22             //System.Data.Entity.EntityState.Deleted:删除
    23             //System.Data.Entity.EntityState.Modified:修改
    24             dbContext.Entry<T_Seats>(seats).State = System.Data.Entity.EntityState.Modified;
    25             //4、告诉上下文,把实体的变化保存到数据库里面去
    26             dbContext.SaveChanges(); //执行SQL脚本的地方
    27             Console.Write("ok");
    28             Console.ReadKey();
    29         }
    30     }
    31 }
    修改DEMO
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace EFDemoFirst
     8 {
     9     class Program
    10     {
    11         static void Main(string[] args)
    12         {
    13             //1、声明一个EF的上下文
    14             DEMOEntities dbContext = new DEMOEntities();
    15             ////2、声明一个实体
    16             T_Seats seats = new T_Seats();
    17             seats.id = 4; //删除的WHERE条件,不加全部删除
    18             //3、告诉ef做更新操作
    19             //system.data.entity.entitystate.added:添加
    20             //system.data.entity.entitystate.deleted:删除
    21             //system.data.entity.entitystate.modified:修改
    22             dbContext.Entry<T_Seats>(seats).State = System.Data.Entity.EntityState.Deleted;
    23             //4、告诉上下文,把实体的变化保存到数据库里面去
    24             dbContext.SaveChanges(); //执行SQL脚本的地方
    25             Console.Write("ok");
    26             Console.ReadKey();
    27         }
    28     }
    29 }
    删除DEMO
     1         static void Main(string[] args)
     2         {
     3             //查询
     4             //1、声明一个EF的上下文
     5             DEMOEntities dbContext = new DEMOEntities();
     6             //把这个表中的数据,全部映射打印出来
     7             //foreach (var item in dbContext.T_Seats)
     8             //{
     9             //    Console.WriteLine(item.id+"  "+item.userName+" "+item.pwdWord);
    10             //}
    11             #region Linq查询
    12             var temp = from u in dbContext.T_Seats select u;
    13             foreach (var t in temp)
    14             {
    15                 Console.WriteLine(t.id+" "+t.userName+" "+t.pwdWord);
    16             }
    17             #endregion
    18             Console.Write("ok");
    19             Console.ReadKey();
    20         }
    查询DEMO
     1         static void Main(string[] args)
     2         {
     3             DataModelContainer dbContext = new DataModelContainer();
     4             var data = dbContext.CustomerSet.Where(u => u.ID > 1);
     5             foreach (var item in data)
     6             {
     7                 Console.WriteLine(item.ID+" ,"+item.CusName);
     8             }
     9             Console.WriteLine("ok..");
    10             Console.ReadKey();
    11 
    12         }
    查询DEMO Lambda表达式
     1         static void Main(string[] args)
     2         {
     3             DataModelContainer dbContext = new DataModelContainer();
     4             //升序
     5             //var pageData = dbContext.CustomerSet.Where(u => u.ID > 2).OrderBy<Customer, int>(u => u.ID);
     6             //降序
     7             var pageData = dbContext.CustomerSet.Where(u => u.ID > 2).OrderByDescending<Customer, int>(u => u.ID).Skip(2*3).Take(2);
     8             foreach (var item in pageData)
     9             {
    10                 Console.WriteLine(item.ID+","+item.CusName);
    11             }
    12             Console.WriteLine("ok..");
    13             Console.ReadKey();
    14         }
    分页
  • 相关阅读:
    初探Java设计模式2:结构型模式(代理模式,适配器模式等)
    初探Java设计模式1:创建型模式(工厂,单例等)
    Java集合详解8:Java集合类细节精讲,细节决定成败
    Java集合详解7:一文搞清楚HashSet,TreeSet与LinkedHashSet的异同
    MySQL教程67-使用DISTINCT过滤重复数据
    MySQL教程66-数据表查询语句
    MySQL教程65-MySQL操作表中数据
    MySQL教程64-MySQL 流程控制函数
    MySQL教程63-MySQL 聚合函数
    MySQL教程62-MySQL日期和时间函数
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/11221490.html
Copyright © 2011-2022 走看看