EntityFramework.Extended是一个基于EntityFramework框架 IQueryable类型的扩展方法,包括Update、Delete。

它的优点就是 修改删除操作不仅仅有Id一个条件,可以有过个条件;

做修改时不仅可以传入整个实体类型,也可以根据条件只传入需要改变的局部字段内容。

1.Nuget程序包管理 搜索并下载程序集

2.创建一个数据上下文

/  // <summary>
/// 数据上下文
/// </summary>
public class MyDbContext:DbContext
{
#region 构造函数 /// <summary>
/// 初始化一个 使用连接名称为“default”的数据访问上下文类 的新实例
/// </summary>
public MyDbContext()
: base("SqlServer") { } /// <summary>
/// 初始化一个 使用指定数据连接名称或连接串 的数据访问上下文类 的新实例
/// </summary>
public SchoolDbContext(string nameOrConnectionString)
: base(nameOrConnectionString) { } #endregion #region 属性 public DbSet<Member> Member { get; set; } #endregion }

3.调用方法

前提需要引用命名空间

using EntityFramework.Extensions;

请注意他是 IQueryable的扩展方法;

修改局部字段内容:

        public bool ModifyName(int memberId,string name,string newName)
{
using (MyDbContext context = new MyDbContext())
{
int state = context.Member.Update(
m => m.Id==memberId && m.Name == newName, //修改条件
m => new Member { Name = newName }); //只修改Name
return state > ? true : false;
}
}
#endregion

删除操作:

public bool Delete(int memberId)
{
using (MyDbContext context = new MyDbContext())
{
int state = context.Member.Delete(
m => m.Id == memberId //修改条件
);
return state > ? true : false;
}
}

如果把它封装到Repository仓储操作类里起来更方便了

        /// <summary>
/// 获取 当前实体的查询数据集
/// </summary>
public virtual IQueryable<TEntity> Entities
{
get { return EFContext.Set<TEntity>(); }
}
        /// <summary>
/// 删除所有符合特定表达式的数据
/// </summary>
/// <param name="predicate"> 查询条件谓语表达式 </param>
/// <returns> 操作影响的行数 </returns>
public virtual int Delete(Expression<Func<TEntity, bool>> predicate)
{
return Entities.Delete(predicate);
} /// <summary>
/// 修改操作
/// </summary>
/// <param name="fun1">查询条件-谓语表达式</param>
/// <param name="fun2">实体-谓语表达式</param>
/// <returns>操作影响的行数</returns>
public virtual int Update(Expression<Func<TEntity, bool>> fun1, Expression<Func<TEntity, TEntity>> fun2)
{
return Entities.Update(fun1, fun2);
}

EntityFramework.Extended扩展用法的更多相关文章

  1. 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)

    前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...

  2. EntityFramework.Extended 对EF进行扩展

    前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...

  3. 采用EntityFramework.Extended 对EF进行扩展

    今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这是一个对Entity Framework进行扩展的类库 ...

  4. entity framework 新手入门篇(4)-entity framework扩展之 entityframework.extended

    对于EF的操作,我们已经有了大概的了解了,但对于实战来说,似乎还欠缺着一些常用的功能,那就是批量的删除,更新数据. 承接上面的部分,我们有一个叫做House的数据库,其中包含house表和seller ...

  5. EntityFramework 插件之EntityFramework.Extended (批量处理)

    接手了一个用EF来做的项目,由于项目中使用的原生处理,导致很多update都是采用先select 后 update的方式来实现,同时无法批量执行逻辑如:根据订单类型统一更新状态等.所以在经过了N多查找 ...

  6. 开发笔记:基于EntityFramework.Extended用EF实现指定字段的更新

    今天在将一个项目中使用存储过程的遗留代码迁移至新的架构时,遇到了一个问题——如何用EF实现数据库中指定字段的更新(根据UserId更新Users表中的FaceUrl与AvatarUrl字段)? 原先调 ...

  7. EntityFramework.Extended

    记录 Entity Framework扩展,可以实现批量更新.删除,但需要EntityFramework6.0支持,需要支持低版本的EF,可下载该扩展的低版本. https://www.nuget.o ...

  8. ef和mysql使用(二)--让mysql支持EntityFramework.Extended实现批量更新和删除

    我们都知道Entity Framework 中不能同时更新多条记录,但是一个老外写的扩展库可以实现此功能EntityFramework.Extended,但是如何是mysql数据库要怎么实现呢 首先实 ...

  9. EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除

    原文链接:http://blog.csdn.net/fanbin168/article/details/51485969   批量插入 (17597条数据批量插入耗时1.7秒)   using Sys ...

随机推荐

  1. Push failed: Failed with error: fatal: Could not read from remote repository.

    GitLab push远端,出现错误提示:Push failed: Failed with error: fatal: Could not read from remote repository. 原 ...

  2. 【drp 11】使用Junit简单测试接口方法

    一.Junit简介 JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个. JUn ...

  3. 【drp 10】JSP页面中model1和model2的区别

    一.基本概念 1.1,model1 model1的开发模式是:jsp+javabean的模式,它的核心是JSP页面,在这个页面中,jsp页面负责整合页面和javabean(业务逻辑),而且渲染页面.它 ...

  4. vyatta的fork开源版本

    https://www.reddit.com/r/networking/comments/3dvwfy/who_here_is_using_vyos/ Vyatta came in two flavo ...

  5. ENVI 5.0 Beta 体验——影像数据的显示

    ENVI 5.0 Beta采用了全新的软件界面,数据的显示和操作跟以往的三视窗方式有很大的区别,下面一块体验一下. 对于栅格数据的显示方面,5.0有了非常大的改进,采用的全新的金字塔计算方法,在第一次 ...

  6. Oracle笔记 一、oracle的安装、sqlplus的使用

    1. 首先你得安装Oracle数据库服务器端和客户端软件,在安装过程中要注意的是,选择oracle的安装目录,切记不要用中文目录或的带空格的目录. 下载地址: http://hi.baidu.com/ ...

  7. [my]_ubuntu12.10_/etc/apt/sources.list

    deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse deb-src http://mirror ...

  8. POJ C程序设计进阶 编程题#2: 配对碱基链

    编程题#2: 配对碱基链 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 脱 ...

  9. Data Mover Script Templates

    Datamover is probably the best way to export and import data between PeopleSoft databases and the sc ...

  10. 线程池(C#)

    转自:http://blog.sina.com.cn/s/blog_494305f30100ryw7.html 在这里你可以学到Microsoft研究CLR实现线程池的原理机制,从而更灵活的处理CLR ...