后台:我的数据库将所有CRUD操作公开为存储过程。我想利用DbContext
的优势,包括变更跟踪。存在用于插入,更新和删除操作的现成解决方案:
protected override void OnModelCreating (DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Person>()
.MapToStoredProcedures(c =>
c.Update(u => u.HasName("update_person")
.Parameter(p => p.Id, "person_id")
.Parameter(p => p.Name, "name"))
.Delete(d => d.HasName("delete_person")
.Parameter(p => p.Id, "person_id"))
.Insert(i => i.HasName("insert_person")
.Parameter(p => p.Name, "department_name")));
}
我还发现了如何从存储过程中选择数据:
Database.SqlQuery<Person>("select_persons", parameters);
以下是问题:如何让DbContext
对检索到的记录集执行更改跟踪?我可以拨打SaveChanges()
吗?
答案 0 :(得分:0)
对于存储过程select_persons
,您应该能够:
List<select_persons_Result> myPeople = dbContext.select_persons().ToList();
将sproc添加到模型时会自动创建类select_persons_Result
。
如果你只是做SaveChanges()
,我不明白你打电话select
是什么意思。