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,数据更新奥秘的更多相关文章

  1. EF – 5.DbSet与DbContext,数据更新奥秘

    5.6.4 <DbSet与DbContext> 介绍DbSet与DbContext中的核心属性及重要方法. 5.6.5 <数据更新的奥秘>  这一讲极为重要,因为它揭示出了En ...

  2. EF Code First、DbContext

    EF Code First.DbContext 对于之前一直使用webForm服务器控件.手写ado.net操作数据库的同学,突然来了EF和MVC,好多新概念一下泉涌而出,犹如当头一棒,的确有点不知所 ...

  3. EF的DbSet属性的Where查询,注意事项

    #1 Func<T,bool>与 Expression<Func<T,bool>>的区别 Func<T,bool>本身就是一个委托(delegate), ...

  4. 使用EF 4.1的DbContext的方法大全

    简述:EF4.1包括Code First和DbContext API.DbContext API为EF提供更多的工作方式:Code First,Database First和Model First. ...

  5. EF和MVC系列文章导航:EF Code First、DbContext、MVC

    对于之前一直使用webForm服务器控件.手写ado.net操作数据库的同学,突然来了EF和MVC,好多新概念泉涌而出,的确犹如当头一棒不知所措.本系列文章可以帮助新手入门并熟练使用EF和MVC,有了 ...

  6. 单元测试中使用Moq对EF的DbSet进行mock

    刚用上Moq,就用它解决了一个IUnitOfWork的mock问题,在这篇博文中记录一下. 开发场景 Application服务层BlogCategoryService的实现代码如下: public ...

  7. EF的使用(DbContext对象的共用问题)

    1.问题的引入 对于某一个数据库的EF操作对象,当执行某一次请求的时候,可能会多次操作数据库,也就是可能创建很多MyDbContext(继承自DbContext对象,EF上下文对象) 2.代码创建 当 ...

  8. EF Core 多个DbContext迁移命令

    如果涉及多个项目,注意保持DbContext所在项目和启动项目关于数据库的包引用版本一致 注意设置不同的DbContext迁移文件目录不同 1.Enable-migrations EntityFram ...

  9. EF Entity Framework Core DBContext中文文档

    Add(Object) 以添加状态开始跟踪给定的实体和任何其他尚未被跟踪的可访问实体,以便在调用SaveChanges()时将它们插入数据库.使用State设置单个实体的状态. Add<TEnt ...

随机推荐

  1. 基于php的snmp管理端开发

    一.系统环境: 操作系统:CentOS 5.4                内核:Linux_2.6 编译环境:gcc 4.1.2                代码版本:php-5.2.8.tar ...

  2. 5.8---像素设定(CC150)

    注意:仔细注意位置. public static int[] renderPixel(int[] screen, int x, int y){ int[] ans = new int[screen.l ...

  3. 【GoLang】类型和作用在它上面定义的方法必须在同一个包里定义

    cannot define new methods on non-local type int 参考资料: http://wiki.jikexueyuan.com/project/the-way-to ...

  4. (转) C#如何使用异步编程

    怎么使用异步,就是用委托进行处理,如果委托对象在调用列表中只有一个方法,它就可以异步执行这个方法.委托类有两个方法,叫做BeginInvoke和EndInvoke,它们是用来异步执行使用. 异步有三种 ...

  5. Game of Life I & II

    According to the Wikipedia's article: "The Game of Life, also known simply as Life, is a cellul ...

  6. cpu中断

    中断是什么?cpu在中断的时候做了些什么? 答:中断就是中止当前正在执行的工作,而去执行引起中断的事件,当引起中断的事件执行完毕之后,CPU继续执行以前的未执行完的工作. CPU暂时中断当前正在执行的 ...

  7. Java集合中Comparator和Comparable接口的使用

    在Java集合中,如果要比较引用类型泛型的List,我们使用Comparator和Comparable两个接口. Comparable接口 -- 默认比较规则,可比较的 实现该接口表示:这个类的实例可 ...

  8. MongoDB 索引相关知识

    背景: MongoDB和MySQL一样,都会产生慢查询,所以都需要对其进行优化:包括创建索引.重构查询等.现在就说明在MongoDB下的索引相关知识点,可以通过这篇文章MongoDB 查询优化分析了解 ...

  9. UrlEncoder url编码

    public static string PercentEncode(string s)        {            var bytes = Encoding.UTF8.GetBytes( ...

  10. java 入门 第二季3

    1.继承 1.java是单继承的,一个子类只有一个父类 父类,基类 子类,派生类 2.继承的好处:子类拥有父类的所有属性和方法,属性的修饰符不能是private 3.语法规则: class 子类 ex ...