Jac*_*ack 3 .net c# sql entity-framework entity-framework-4.1
我有一个员工对象说:
public class Employee
{
public int Id {get; set;}
public int Name {get; set;}
public int Address {get; set;}
...other few 10's of properties
}
Run Code Online (Sandbox Code Playgroud)
问题是我如何才更新Name?例如.如果我想更新姓名我做
Employee e = Db.Employees.Where(e => e.Id == someId).SingleOrDefault();
e.Name = "Jack";
Db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
如您所见,为了更新,我必须首先获取对象然后更新,然后调用SaveChanges().对于可以在对数据库的单个查询中完成的任务,我必须触发2个查询:1)获取对象2)更新所需对象并保存更改.
对于传统的存储过程方法,我只需传递Id,传递新的Name并编写Update语句,我就完成了.实体框架真的效率低下还是我错过了什么?
您可以选择性地更新列:
var employee = new Employee() { Id = someId, Name = "Jack" }
Db.Employees.Attach(employee);
Db.Employees.Entry(employee).Property(e => e.Name).IsModified = true;
Db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
注意:只有带有.NET 4.5的EF 5才支持IsModified重新设置false.
| 归档时间: |
|
| 查看次数: |
413 次 |
| 最近记录: |