Example #1
0
        private static void Method08()
        {
            Member member = new Member { Id = 1, Password = "******" + DateTime.Now.Second };
            using (var db = new DataContext())
            {
                //先查询一次,让上下文中存在相同主键的对象
                Member oldMember = db.Members.Single(m => m.Id == 1);
                Console.WriteLine("更新前:{0}。", oldMember.AddDate);

                try
                {
                    DbEntityEntry<Member> entry = db.Entry(member);
                    entry.State = EntityState.Unchanged;
                    entry.Property("Password").IsModified = true;
                }
                catch (InvalidOperationException)
                {
                    ObjectContext objectContext = ((IObjectContextAdapter)db).ObjectContext;
                    ObjectStateEntry objectEntry = objectContext.ObjectStateManager.GetObjectStateEntry(oldMember);
                    objectEntry.ApplyCurrentValues(member);
                    objectEntry.ChangeState(EntityState.Unchanged);
                    objectEntry.SetModifiedProperty("Password");
                }
                db.Configuration.ValidateOnSaveEnabled = false;
                int count = db.SaveChanges();
                db.Configuration.ValidateOnSaveEnabled = true;
                Console.WriteLine("操作结果:{0}", count > 0 ? "更新成功。" : "未更新。");

                Member newMember = db.Members.Single(m => m.Id == 1);
                Console.WriteLine("更新后:{0}。", newMember.Password);
            }
        }
Example #2
0
        private static void Method09()
        {
            Member member = new Member { Id = 1, Password = "******" + DateTime.Now.Second };
            using (var db = new DataContext())
            {
                //先查询一次,让上下文中存在相同主键的对象
                Member oldMember = db.Members.Single(m => m.Id == 1);
                Console.WriteLine("更新前:{0}。", oldMember.AddDate);

                db.Update<Member>(m => new { m.Password }, member);
                int count = db.SaveChanges(false);
                Console.WriteLine("操作结果:{0}", count > 0 ? "更新成功。" : "未更新。");

                Member newMember = db.Members.Single(m => m.Id == 1);
                Console.WriteLine("更新后:{0}。", newMember.Password);
            }
        }
Example #3
0
        private static void Method06()
        {
            Member member = new Member { Id = 1, Password = "******" + DateTime.Now.Second };
            using (var db = new DataContext())
            {
                DbEntityEntry<Member> entry = db.Entry(member);
                entry.State = EntityState.Unchanged;
                entry.Property("Password").IsModified = true;
                db.Configuration.ValidateOnSaveEnabled = false;
                int count = db.SaveChanges();
                db.Configuration.ValidateOnSaveEnabled = true;
                Console.WriteLine("操作结果:{0}", count > 0 ? "更新成功。" : "未更新。");

                Member newMember = db.Members.Single(m => m.Id == 1);
                Console.WriteLine("更新后:{0}。", newMember.Password);
            }
        }