Entity Framework Extended Library
扩展了实体框架的功能类库.
https://github.com/loresoft/EntityFramework.Extended
1、批量更新/删除
1)删除
//delete all users where FirstName matches
context.Users.Delete(u => u.FirstName == "firstname");
2)更新
//update all tasks with status of 1 to status of 2
context.Tasks.Update(
t => t.StatusId == ,
t2 => new Task {StatusId = }); //example of using an IQueryable as the filter for the update
var users = context.Users.Where(u => u.FirstName == "firstname");
context.Users.Update(users, u => new User {FirstName = "newfirstname"});
2、查询结果缓存
存查询结果,使用扩展方法FromCache位于EntityFramework。命名空间扩展。下面是一个示例缓存查询结果。从构建LINQ查询你的都会,然后追加的FromCache延伸。
1)默认设置
//query is cached using the default settings //查询缓存是使用默认设置
var tasks = db.Tasks
.Where(t => t.CompleteDate == null)
.FromCache(); //query result is now cached 300 seconds //现在是300秒的缓存查询结果
var tasks = db.Tasks
.Where(t => t.AssignedId == myUserId && t.CompleteDate == null)
.FromCache(CachePolicy.WithDurationExpiration(TimeSpan.FromSeconds()));
//删除缓存
db.Tasks.Where(t => t.AssignedId == myUserId && t.CompleteDate == null).RemoveCache();
2)标记缓存
查询结果缓存还支持标记缓存,这样您就可以通过调用过期的缓存标记过期公共缓存条目。
// cache assigned tasks 设置缓存
var tasks = db.Tasks
.Where(t => t.AssignedId == myUserId && t.CompleteDate == null)
.FromCache(tags: new[] { "Task", "Assigned-Task-" + myUserId }); // some update happened to Task, expire Task tag 如果这个发生修改.则过期缓存标记
CacheManager.Current.Expire("Task");
CacheManager支持提供程序使用MemoryCache存储高速缓存条目。实现自定义提供程序,实现ICacheProvider。自定义提供程序将需要在定位器解析器注册。
// Replace cache provider with Memcached provider 替换缓存
Locator.Current.Register<ICacheProvider>(() => new MemcachedProvider());
默认缓存策略
When no CachePolicy is set, the CachePolicy.Default is used. You can set the values of CachePolicy.Default on application startup to have default settings.
当没有CachePolicy设置,使用默认的CachePolicy.Default。你可以设置CachePolicy.Default值。在应用程序启动时默认为默认设置。
3、检查日志
能将在任何时间提交到数据库时捕捉到实体的更改。检查日志只捕获被改变的实体,只捕获那些被改变的实体的属性。记录前后的值。在这个信息AuditLogger.LastAudit是举行并有一个可以很容易的把检查日志为XML便于储存ToXml()方法。
The AuditLog can be customized via attributes on the entities or via a Fluent Configuration API.
检查日志可以通过定制的实体或属性通过Fluent API配置。
// config audit when your application is starting up... 当您的应用程序启动时,配置检查日志
var auditConfiguration = AuditConfiguration.Default; auditConfiguration.IncludeRelationships = true;
auditConfiguration.LoadRelationships = true;
auditConfiguration.DefaultAuditable = true; // customize the audit for Task entity 自定义检查日志 实体
auditConfiguration.IsAuditable<Task>()
.NotAudited(t => t.TaskExtended)
.FormatWith(t => t.Status, v => FormatStatus(v)); // set the display member when status is a foreign key 当状态外键时 设置显示组件
auditConfiguration.IsAuditable<Status>()
.DisplayMember(t => t.Name);
创建检查日志
var db = new TrackerContext();
var audit = db.BeginAudit();
// make some updates ... 一些代码 db.SaveChanges();
var log = audit.LastLog;
Entity Framework Extended Library的更多相关文章
- 【转】Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
E文好的可以直接看https://github.com/loresoft/EntityFramework.Extended 也可以在nuget上直接安装这个包,它的说明有点过时了,最新版本已经改用对I ...
- (转)Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
转自:http://www.cnblogs.com/jinzhao/archive/2013/05/31/3108755.html 今天乍一看,园子里居然没有关于这个类库的文章,实在是意外毕竟已经有很 ...
- Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)
E文好的可以直接看https://github.com/loresoft/EntityFramework.Extended 也可以在nuget上直接安装这个包 1.先更新VS的NuGet版本http: ...
- entity framework extended library , bulk execute,deleting and updating ,opensource
http://weblogs.asp.net/pwelter34/entity-framework-batch-update-and-future-queries
- Entity Framework Extended 批量删除
public static class DbContextExtensions { public static void DeleteBatch<T>(this DbContext con ...
- Entity Framework扩展库
这个Entity Framework扩展完全支持EF 5.0/6.0,项目地址 https://github.com/loresoft/EntityFramework.Extended,这个库支持批量 ...
- entity framework core 支持批量插入,值得期待
entity framework6.x之前搞了这么多版本,构架这么牛B,居然没有批量插入更新的功能,但有很多替换的解决方案,例如Entity Framework Extended Library(ht ...
- Entity Framework 项目使用心得
在博客园很久了,一直只看不说,这是发布本人的第一个博客. 总结一下在项目中,EntityFramework使用的一下经验拿来和大家分享,希望对大家有用~ 1. 在Entity Fram ...
- Entity Framework实体框架使用TrackerEnabledDbContext进行操作日志跟踪
在EF实体框架中进行日志跟踪,一般都是自己写个Log实体类,在数据保存时进行属性原始值验证来进行日志跟踪.当然还可以使用一些第三扩展库例如:entity framework extended进行日志记 ...
随机推荐
- 【HanLP】资料链接汇总
Java中调用HanLP配置 HanLP自然语言处理包开源官方文档 了解HanLP的全部 自然语言处理HanLP 开源自由的汉语言处理包主页 GitHub源码 基于hanLP的中文分词详解-MapRe ...
- JS魔法堂:不完全国际化&本地化手册 之 理論篇
前言 最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...
- AbpZero--1.如何开始
1.加群 群号:104390185,下载这个文件并解压 用VS2015打开aspnet-zero-1.9.0.1 2.修改Web项目web.config连接字符串 <add name=" ...
- GJM : C#设计模式(1)——单例模式
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- CSS常见技巧
一.CSS Sprite(雪碧图|精灵图)指什么? 有什么作用? CSS雪碧 即CSS Sprite,也有人叫它CSS精灵,是一种CSS图像合并技术,该方法是将小图像和背景图片合并到一张图片上,然后利 ...
- Git 学习看这篇就够了!
Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. 可能新手会问"git和github有什么关系啊?" git是一个版本控制工具: githu ...
- Oracle创建表空间
1.创建表空间 导出Oracle数据的指令:/orcl file=C:\jds.dmp owner=jds 导入Oracle数据的指令:imp zcl:/orcl file=C:\jds.dmp fu ...
- [Django]用户权限学习系列之设计自有权限管理系统设计思路
若在阅读本片文章遇到权限操作问题,请查看本系列的前两章! http://www.cnblogs.com/CQ-LQJ/p/5609690.html和http://www.cnblogs.com/CQ- ...
- 深入理解Spring MVC
如何让一个普通类成为Controller? 方案一:实现接口Controller 解析:handleRequest(request,response) 方案二:继承AbstractController ...
- EntityFramework与TransactionScope事务和并发控制
最近在园子里看到一篇关于TransactionScope的文章,发现事务和并发控制是新接触Entity Framework和Transaction Scope的园友们不易理解的问题,遂组织此文跟大家共 ...