EntityFramework.Extended扩展用法
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扩展用法的更多相关文章
- 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)
前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...
- EntityFramework.Extended 对EF进行扩展
前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...
- 采用EntityFramework.Extended 对EF进行扩展
今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这是一个对Entity Framework进行扩展的类库 ...
- entity framework 新手入门篇(4)-entity framework扩展之 entityframework.extended
对于EF的操作,我们已经有了大概的了解了,但对于实战来说,似乎还欠缺着一些常用的功能,那就是批量的删除,更新数据. 承接上面的部分,我们有一个叫做House的数据库,其中包含house表和seller ...
- EntityFramework 插件之EntityFramework.Extended (批量处理)
接手了一个用EF来做的项目,由于项目中使用的原生处理,导致很多update都是采用先select 后 update的方式来实现,同时无法批量执行逻辑如:根据订单类型统一更新状态等.所以在经过了N多查找 ...
- 开发笔记:基于EntityFramework.Extended用EF实现指定字段的更新
今天在将一个项目中使用存储过程的遗留代码迁移至新的架构时,遇到了一个问题——如何用EF实现数据库中指定字段的更新(根据UserId更新Users表中的FaceUrl与AvatarUrl字段)? 原先调 ...
- EntityFramework.Extended
记录 Entity Framework扩展,可以实现批量更新.删除,但需要EntityFramework6.0支持,需要支持低版本的EF,可下载该扩展的低版本. https://www.nuget.o ...
- ef和mysql使用(二)--让mysql支持EntityFramework.Extended实现批量更新和删除
我们都知道Entity Framework 中不能同时更新多条记录,但是一个老外写的扩展库可以实现此功能EntityFramework.Extended,但是如何是mysql数据库要怎么实现呢 首先实 ...
- EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
原文链接:http://blog.csdn.net/fanbin168/article/details/51485969 批量插入 (17597条数据批量插入耗时1.7秒) using Sys ...
随机推荐
- python字典的常用操作方法
Python字典是另一种可变容器模型(无序),且可存储任意类型对象,如字符串.数字.元组等其他容器模型.本文章主要介绍Python中字典(Dict)的详解操作方法,包含创建.访问.删除.其它操作等,需 ...
- Javascript中的Bind 、Call和Apply
看以下代码: var bind = Function.prototype.call.bind(Function.prototype.bind); 第一眼看上去,我能猜出它究竟是用来做什么的.它把x.y ...
- 《Ossim应用指南》入门篇
Ossim应用入门 --在<OSSIM在企业网络管理中的应用>http://chenguang.blog.51cto.com/350944/802007 这篇文章发布之后,很多同行对oss ...
- 代码轮子之很简单但是挺管用的基于C# Task的模拟并发的代码
代码轮子之很简单但是挺管用的基于C# Task的模拟并发的代码
- 【MySQL】InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据
参考:http://my.oschina.net/sansom/blog/179116 参考:http://www.jb51.net/article/43282.htm 注意!此方法只适用于innod ...
- Largest palindrome product
A palindromic number reads the same both ways. The largest palindrome made from the product of two 2 ...
- 《cocos2d-x游戏开发》—— lua学习总结(一)数组的使用
在lua中,数组是用table来实现的. 1.数组的定义: self.itemArrays = {}; --作为数组来使用的表itemArrays 2. 数组插入一条数据: local showIte ...
- html Doctype作用?
Doctype它主要的作用来声明html的版本 <!Doctype html>这是html5的 不写可能会造成html5的功能不能用(具体会不会出错就要看浏览器的容错性)
- js冒泡事件之之之
console.log("event.target="+event.target); console.log("event.target="+event.tar ...
- IE中console的正确使用方法
本文出处原文链接 转载请注明出处 http://www.cnblogs.com/havedream/p/4519538.html 问题来源:最近在学习easyui,观看的视频教程是孙宇的<EAS ...