引用自:http://www.lanhusoft.com/Article/246.html
Posted By : 蓝狐
Updated On : 2015-05-19 21:13
我们EF6都知道用SaveChanges可以修改数据库中的一个表中的记录,但是有时候我们只想修改某几列,而有些字段一旦创建好了就不需要修改。比如:表产品表Product有一个字段CreateTime,记录的是创建时间,在修改的时候不用修改。为了解决这个问题,下面我就给出EF6中SaveChanges修改实体跳过某一列不修改的方法,相应代码如下:
- if (ModelState.IsValid)
- {
- product.UpdateTime = DateTime.Now;
- db.Entry(product).State = EntityState.Modified;
- db.Entry(product).Property("CreateTime").IsModified = false;
- db.SaveChanges();
- return RedirectToAction("Index");
- }
上面关键一行代码是:
- db.Entry(product).Property("CreateTime").IsModified = false;
注意:这行标示列不被修改的行一定要在db.Entry(product).State = EntityState.Modified之后,不然会报下面的错:
Member 'IsModified' cannot be called for property 'CreateTime' because the entity of type 'CMS_Product' does not exist in the context. To add an entity to the context call the Add or Attach method of DbSet<CMS_Product>.
.net网站&系统开发技术学习交流群:533829726
本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,共创和谐网络环境。
转载请注明:文章转载自:蓝狐软件工作室 » EF6中SaveChanges修改实体跳过某一列不修改的方法
本文标题:EF6中SaveChanges修改实体跳过某一列不修改的方法
本文地址:http://www.lanhusoft.com/Article/246.html
转载请注明:文章转载自:蓝狐软件工作室 » EF6中SaveChanges修改实体跳过某一列不修改的方法
本文标题:EF6中SaveChanges修改实体跳过某一列不修改的方法
本文地址:http://www.lanhusoft.com/Article/246.html