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. Linux 部署 FastDFS

    FastDFS 安装规划: 项目 信息 Group Name group1 FastDFS安装主目录 /usr/local/fastdfs-5.0.8 FastDFS work主目录 /usr/loc ...

  2. freemarker从入门到精通

    目录 一:概述 二:Freemarker的Helloworld 三:freemarker模板语法 1.访问map中的key 2.访问POJO中的属性 3.取集合中的数据 4.判断 5.日期 6.Nul ...

  3. 使用IntelliJ IDEA创建第一个Mawen项目

    咳咳...首先各位在学习SSM框架的时候,单个单个学完之后,老夫掐指一算(其实,我是个小鲜肉),各位必定会去整合SSM,这个时候,老夫又掐指一算,各位必定会碰到个mawen的东西,在这里,我可以告诉各 ...

  4. maven将xml文件一起打包

    pom文件配置 <build> <!-- 将mapper.xml一起打包 --> <resources> <resource> <director ...

  5. C# winfrom调用摄像头扫描二维码(完整版)

    前段时间看到一篇博客,是这个功能的,参考了那篇博客写了这个功能玩一玩,没有做商业用途.发现他的代码给的有些描述不清晰的,我就自己整理一下发出来记录一下. 参考博客链接:https://www.cnbl ...

  6. Asp.Net Core 内置IOC容器的理解

    Asp.Net Core 内置IOC容器的理解 01.使用IOC容器的好处 对接口和实现类由原来的零散式管理,到现在的集中式管理. 对类和接口之间的关系,有多种注入模式(构造函数注入.属性注入等). ...

  7. 剑指offer笔记面试题10----斐波那契数列

    题目:求斐波那契数列的第n项.写一个函数,输入n,求斐波那契数列的第n项.斐波那契数列的定义如下:f(0) = 0, f(1) = 1,f(n) = f(n - 1) + f(n - 2). 测试用例 ...

  8. echarts 柱状图+折线+文字倾斜及省略

    效果图: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  9. python爬取网业信息案例

    需求:爬取网站上的公司信息 代码如下: import json import os import shutil import requests import re import time reques ...

  10. for循环使用element的折叠面板遇到的问题-2

    需求:每次添加一个折叠面板时,让最新的折叠面板展开,其余的关闭 动态控制展开折叠面板,首先绑定name,v-model = activeName 我们的项目中是当添加折叠面板时,直接push进这个数组 ...