实体框架代码优先 - 从具有更改跟踪功能的存储过程中选择数据



>背景:我的数据库将所有 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()

对于存储过程select_persons,您应该能够执行以下操作:

List<select_persons_Result> myPeople = dbContext.select_persons().ToList();

select_persons_Result是在将 sproc 添加到模型时自动创建的。

我不明白你打电话给SaveChanges()是什么意思,如果你只是在做一个select.

最新更新