EF是微软推出的官方ORM框架,默认防注入可以配合LINQ一起使用,更方便开发人员。

首先通过SQLSERVER现在有的数据库类生产EF

右键-》添加-》新建项,选择AOD.NET实体数据模型,来自数据库的Code FIrst

完成添加后会生成多个文件,并且在你的项目的配置文件中有数据库的链接字符串,下面文件中 “name=Test”,

Test就是连接字符串的name

public partial class TestDB : DbContext
{
public TestDB()
: base("name=Test")
{
}
public virtual DbSet<School> School { get; set; }
public virtual DbSet<Student> Student { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
public partial class School
{
[StringLength()]
public string SchoolId { get; set; } [StringLength()]
public string Name { get; set; } public DateTime? CreateTime { get; set; } [StringLength()]
public string Address { get; set; } [StringLength()]
public string Telephone { get; set; }
}
public partial class Student
{
[StringLength()]
public string StudentId { get; set; } [StringLength()]
public string Name { get; set; }
}
School和Student就是根据数据库表来生成的类

通过泛型来做基础操作
class BaseDB<T> where T : class, new()
{
DbContext Db = new Test(); //查询
public IQueryable<T> LaodEntities(System.Linq.Expressions.Expression<Func<T, bool>> whereLambda)
{
return Db.Set<T>().Where<T>(whereLambda);
} //更新
public bool EditEntity(T entity)
{
Db.Entry<T>(entity).State = EntityState.Modified;
return Db.SaveChanges() > ;
} //添加
public bool AddEntity(T entity)
{ Db.Set<T>().Add(entity);
return Db.SaveChanges() > ;
} //删除
public bool DeleteEntity(T entity)
{
Db.Entry<T>(entity).State = EntityState.Deleted;
return Db.SaveChanges() > ;
}
//批量添加
public bool AddBatch(IList<T> arrObj)
{
Db.Set<T>().AddRange(arrObj);
return Db.SaveChanges() > ;
}
//批量更改
public bool UpdateBatch(IList<T> arrObj)
{
foreach (var item in arrObj)
{
Db.Entry<T>(item).State = EntityState.Modified;
}
return Db.SaveChanges() > ;
}
//批量删除
public bool DeleteBatch(IList<T> arrObj)
{
foreach (var item in arrObj)
{
Db.Entry<T>(item).State = EntityState.Deleted;
}
return Db.SaveChanges() > ;
}
//分页
public IQueryable<T> LoadPageEntities<s>(int pageIndex, int pageSize, out int totalCount, System.Linq.Expressions.Expression<Func<T, bool>> whereLambda, System.Linq.Expressions.Expression<Func<T, s>> orderbyLambda, bool isAsc)
{
var temp = Db.Set<T>().Where<T>(whereLambda);
totalCount = temp.Count();
if (isAsc)//升序
{
temp = temp.OrderBy<T, s>(orderbyLambda).Skip<T>((pageIndex - ) * pageSize).Take<T>(pageSize);
}
else
{
temp = temp.OrderByDescending<T, s>(orderbyLambda).Skip<T>((pageIndex - ) * pageSize).Take<T>(pageSize);
}
return temp;
}
}

实际使用

BaseDB<Student> baseDB = new BaseDB<Student>();
baseDB.AddEntity(new Student {
StudentId = Guid.NewGuid().ToString(),
Name = "小红"
});
 
 

Entity Framework 基础操作(1)的更多相关文章

  1. entity framework 时间操作

    ).FirstOrDefault(); if (useractiveentity == null) { UserActive userActive = new UserActive(); userAc ...

  2. Entity Framework 基础

    在忙碌中渡过了5,6,7 月份,现在些抽点时间对Entity Framework的使用做一些基础的回忆. Entity Framework 是什么? Entity Framework(EF)和我们所熟 ...

  3. .NET Entity Framework入门操作

    Entity Framework是微软借鉴ORM思想开发自己的一个ORM框架. ORM就是将数据库表与实体对象(相当于三层中的Model类)相互映射的一种思想. 最大的优点就是非常方便的跨数据库平台. ...

  4. Entity Framework基础01

    学习了ADO.NET的相关知识,掌握了它对数据库表的基本操作,但是实际在开发项目应用中微软为我们开发ef这个ORM,使用它可以很方便的利用ADO.NET来操作DBMS,使得我们开发项目的着重点放在业务 ...

  5. UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库

    在应用中使用 SQLite 数据库来存储数据是相当常见的.在 UWP 平台中要使用 SQLite,一般会使用 SQLite for Universal Windows Platform 和 SQLit ...

  6. ADO.NET 之 Entity Framework 基础

    Entity Framework(EF)是使用直接映射到应用程序中业务对象的对象模型于关系数据库进行交互.它没有将数据视为行和列的集合,而是将其视为强类型对象(成为实体)的集合. 术语:LinQ to ...

  7. Entity Framework底层操作封装V2版本号(2)

    这个类是真正的数据库操作类.上面的那个类仅仅是调用了这个封装类的方法进行的操作 using System; using System.Collections.Generic; using System ...

  8. Entity Framework底层操作封装V2版本号(1)

    由于同志们一直给我提建议说.曾经发的版本号有问题.所以经过了我这一年多的使用和扩展,如今方法基本稳定了. 如今贴出来给大家使用: 首先上场的是数据库操作层: using System; using S ...

  9. Entity Framework 基础知识走马观花

    本文目录: 一.EF中的edmx文件探秘 二.EF中的代理模式探秘 三.EF中的延迟加载与即时加载 一.EF中的edmx文件 1.1 emdx文件本质:一个XML文件 (1)通过选择以XML方式打开e ...

随机推荐

  1. Vue小练习 03

    """ 1.有以下广告数据(实际数据命名可以略做调整) ad_data = { tv: [ {img: 'img/tv/tv1.jpg', title: 'tv1'}, ...

  2. Ubuntu安装Node和npm

    本文简单介绍在Ubuntu上安装最新版本的node和npm. 本次试验环境是Ubuntu 18.10. 安装nodejs root@ubuntu:~# cat /etc/issue Ubuntu 18 ...

  3. dict继承关系

    from collections.abc import Mapping, MutableMapping#dict属于mapping类型, MutalbelMapping继承Mapping a = {} ...

  4. 关于MySql 数据库InnoDB存储引擎介绍

    熟悉MySQL的人,都知道InnoDB存储引擎,如大家所知,Redo Log是innodb的核心事务日志之一,innodb写入Redo Log后就会提交事务,而非写入到Datafile.之后innod ...

  5. flex常见布局

    一,常见圣杯布局 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  6. 快速掌握Docker必备基础知识

    快速掌握Docker必备基础知识 Docker是时下热门的容器技术,相信作为一名开发人员,你一定听说过或者使用过,很多人会把Docker理解为一个轻量级虚拟机,但其实Docker与虚拟机(VM)是两种 ...

  7. mysql8之坑

    一.具体"坑" 1.修改密码和修改加密方式 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码' PASSWORD ...

  8. 009.MongoDB分片群集部署

    一 前期准备 1.1 组件说明 MongoDB分片群集包含以下组件: shard:每个分片是分片数据的子集.从MongoDB 3.6开始,必须将分片部署为副本集. mongos:mongos充当查询路 ...

  9. JS运动---运动基础(匀速运动)

    [一]运动基础 (2)基础运动案例 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  10. MySQL执行状态的查看与分析

    当感觉mysql性能出现问题时,通常会先看下当前mysql的执行状态,使用 show processlist 来查看,例如: 其中state状态列信息非常重要,先看下各列含义,然后看下state常用状 ...