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进行日志记 ...
随机推荐
- C#~异步编程再续~await与async引起的w3wp.exe崩溃-问题友好的解决
返回目录 关于死锁的原因 理解该死锁的原因在于理解await 处理contexts的方式,默认的,当一个未完成的Task 被await的时候,当前的上下文将在该Task完成的时候重新获得并继续执行剩余 ...
- bzoj1723--前缀和(水题)
题目大意: 你难以想象贝茜看到一只妖精在牧场出现时是多么的惊讶.她不是傻瓜,立即猛扑过去,用她那灵活的牛蹄抓住了那只妖精. "你可以许一个愿望,傻大个儿!"妖精说. ...
- 【Java每日一题】20170105
20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【从零开始学BPM,Day3】自定义表单开发
[课程主题] 主题:5天,一起从零开始学习BPM [课程形式] 1.为期5天的短任务学习 2.每天观看一个视频,视频学习时间自由安排. [第三天课程] 1.课程概要 Step 1 软件下载:H3 BP ...
- Visual Studio Code——Angular2 Hello World 之 2.0
最近看到一篇用Visual Studio Code开发Angular2的文章,也是一篇入门教程,地址为:使用Visual Studio Code開發Angular 2專案.这里按部就班的做了一遍,感觉 ...
- SQL*Plus生成html文件
最近使用SQL*Plus命令生成html文件,遇到一些有意思的知识点,顺便记录一下,方便以后需要的时候而这些知识点又忘记而捉急.好记性不如烂笔头吗! 为什么要用SQL*Plus生成html文件? ...
- [Hadoop in Action] 第6章 编程实践
Hadoop程序开发的独门绝技 在本地,伪分布和全分布模式下调试程序 程序输出的完整性检查和回归测试 日志和监控 性能调优 1.开发MapReduce程序 [本地模式] 本地模式 ...
- Android NDK debug 方法
最近又频繁遇到 NDK 的错误,记录一下debug调试的一些经验,以备后续查看 一般来说,在Android Studio中的Monitor中将过滤器的 LOG TAG 设置为 "DEBUG& ...
- Xamarin. Android实现下拉刷新功能
PS:发现文章被其他网站或者博客抓取后发表为原创了,给图片加了个水印 下拉刷新功能在安卓和iOS中非常常见,一般实现这样的功能都是直接使用第三方的库,网上能找到很多这样的开源库.然而在Xamarin. ...
- HTPC家庭娱乐和XBOX未来发展畅想<另:创业工作机会>
微软中国在上海举办新闻发布会,正式宣布Xbox One将于9月23日在中国开始销售,定价3699元起.这款早在2001年就发布的电视游戏机终于在经历了14年的等待后,进军中国大陆市场.此次Xbox O ...