EF – 5.DbSet与DbContext,数据更新奥秘
5.6.4 《DbSet与DbContext》
介绍DbSet与DbContext中的核心属性及重要方法。
5.6.5 《数据更新的奥秘》
这一讲极为重要,因为它揭示出了Entity Framework实现数据更新的内部机理,了解这些内容,对于用好Entity Framework非常重要。
5.6.4 《DbSet与DbContext》

介绍DbSet与DbContext中的核心属性及重要方法。

5.6.5 《数据更新的奥秘》
这一讲极为重要,因为它揭示出了Entity Framework实现数据更新的内部机理,了解这些内容,对于用好Entity Framework非常重要。

(2)CurrentValue

{
………
//状态
[TestMethod]
public void TestShowUPMS_UserState()
{
var users = (from c in context.UPMS_User orderby c.UserId descending select c).FirstOrDefault();
if (users != null)
{
DbEntityEntry<UPMS_User> entry = context.Entry<UPMS_User>(users);
Console.WriteLine("\n修改属性前的状态:{0}", entry.State); //Unchanged
Helper.PrintEntityPropertyValye(entry);
users.UserDescription = "10008";
context.ChangeTracker.DetectChanges();//更新实体对象当前的状态 //Modified
Console.WriteLine("\n修改属性后的状态:{0}", entry.State);
Helper.PrintEntityPropertyValye(entry);
//result 为当前状态
int result = context.SaveChanges();
Console.WriteLine("\n保存属性后的状态:{0}", entry.State); //Unchanged
Helper.PrintEntityPropertyValye(entry);
}
}
}
public class Helper
{
public static void PrintEntityPropertyValye(DbEntityEntry<UPMS_User> entry)
{
string current = entry.CurrentValues["UserDescription"].ToString();
string original = entry.OriginalValues["UserDescription"].ToString();
string database = entry.GetDatabaseValues()["UserDescription"].ToString();
Console.WriteLine("当前值:{0}\n原始值:{1}\n数据库值:{2}\n", current, original, database);
}
}

(3)禁用跟踪状态(提升性能)
只是查询(只读)的话。

EF – 5.DbSet与DbContext,数据更新奥秘的更多相关文章
- EF – 5.DbSet与DbContext,数据更新奥秘
5.6.4 <DbSet与DbContext> 介绍DbSet与DbContext中的核心属性及重要方法. 5.6.5 <数据更新的奥秘> 这一讲极为重要,因为它揭示出了En ...
- EF Code First、DbContext
EF Code First.DbContext 对于之前一直使用webForm服务器控件.手写ado.net操作数据库的同学,突然来了EF和MVC,好多新概念一下泉涌而出,犹如当头一棒,的确有点不知所 ...
- EF的DbSet属性的Where查询,注意事项
#1 Func<T,bool>与 Expression<Func<T,bool>>的区别 Func<T,bool>本身就是一个委托(delegate), ...
- 使用EF 4.1的DbContext的方法大全
简述:EF4.1包括Code First和DbContext API.DbContext API为EF提供更多的工作方式:Code First,Database First和Model First. ...
- EF和MVC系列文章导航:EF Code First、DbContext、MVC
对于之前一直使用webForm服务器控件.手写ado.net操作数据库的同学,突然来了EF和MVC,好多新概念泉涌而出,的确犹如当头一棒不知所措.本系列文章可以帮助新手入门并熟练使用EF和MVC,有了 ...
- 单元测试中使用Moq对EF的DbSet进行mock
刚用上Moq,就用它解决了一个IUnitOfWork的mock问题,在这篇博文中记录一下. 开发场景 Application服务层BlogCategoryService的实现代码如下: public ...
- EF的使用(DbContext对象的共用问题)
1.问题的引入 对于某一个数据库的EF操作对象,当执行某一次请求的时候,可能会多次操作数据库,也就是可能创建很多MyDbContext(继承自DbContext对象,EF上下文对象) 2.代码创建 当 ...
- EF Core 多个DbContext迁移命令
如果涉及多个项目,注意保持DbContext所在项目和启动项目关于数据库的包引用版本一致 注意设置不同的DbContext迁移文件目录不同 1.Enable-migrations EntityFram ...
- EF Entity Framework Core DBContext中文文档
Add(Object) 以添加状态开始跟踪给定的实体和任何其他尚未被跟踪的可访问实体,以便在调用SaveChanges()时将它们插入数据库.使用State设置单个实体的状态. Add<TEnt ...
随机推荐
- 音视频处理之FFmpeg程序的介绍与使用20180302
一.FFMPEG程序介绍与使用 主要介绍一下ffmpeg工程包含的三个exe的使用方法. 1. FFMPEG程序介绍 1.1.下载 ffmpeg的官方网站是:http://ffmpeg.org/ 下载 ...
- 省选模拟赛 LYK loves rabbits(rabbits)
题目描述 LYK喜欢兔子,它在家中养了3只兔子. 有一天,兔子不堪寂寞玩起了游戏,3只兔子排成一排,分别站在a,b,c这3个位置. 游戏的规则是这样的,重复以下步骤k次:选择两个不同的兔子A和B,假如 ...
- 洛谷P1445 [Violet] 樱花 (数学)
洛谷P1445 [Violet] 樱花 题目背景 我很愤怒 题目描述 求方程 1/X+1/Y=1/(N!) 的正整数解的组数,其中N≤10^6. 解的组数,应模1e9+7. 输入输出格式 输入格式: ...
- C语言基本类型的字节数
- 如何在Lunix云服务器上安装Mysql进行远程连接
说说这个服务器上安装mysql真是一个大坑啊 ! 我也不知道自己怎么心血来潮就买一个百度云服务器,然后就想着吧自己做的一些小项目都跑上去.嘿嘿...其实就是想显摆下,写点小应用给不是编程的朋友们使用 ...
- 782C. Andryusha and Colored Balloons DFS
Link 题意: 给出一棵树,要求为其染色,并且使任意节点都不与距离2以下的节点颜色相同 思路: 直接DFS.由某节点出发的DFS序列,对于其个儿子的cnt数+1,那么因为DFS遍历的性质可保证兄弟结 ...
- PHP扩展--opcache安装及配置
简介 Optimizer+ 是 Zend 开发的闭源但可以免费使用的 PHP 优化加速组件,是第一个也是最快的 opcode 缓存工具.现在,Zend 科技公司将 Optimizer+ 在 PHP L ...
- HTML5文件上传器,纯脚本无插件的客户端文件上传器---Uploader 文件上传器类
概述 客户端完全基于JavaScript的 浏览器文件上传器,不需要任何浏览器插件,但需要和jQuery框架协同工作,支持超大文件上传,其算法是将一个超大文件切片成N个数据块依次提交给服务 端处理,由 ...
- 开发技巧:高效的使用 Response.Redirect
我正在评估一个 ASP.NET Web 项目应用.它有一些可扩展性问题.意味着当网站访问量增加的时候.系统将会变得缓慢.当我查看应用日志.我找到了大量的 ThreadAbortException. 这 ...
- 强大的jQuery网格插件 ParamQuery
ParamQuery是一种轻量级的jQuery网格插件,基于用于用户界面控制.具有一致API的优秀设计模式jQueryUI Widget factory创建,能够在网页上展示各种类似于Excel和Go ...