我发现 DbContext.SqlQuery 与 ObjectContext.ExecuteFunction 之间的区别有用 . 我目前正在使用 .SqlQuery ,但我的同事正在使用 .ExecuteFunction ,所以很好奇为什么会使用 .ExecuteFunction .
DbContext.SqlQuery
ObjectContext.ExecuteFunction
.SqlQuery
.ExecuteFunction
是否有任何优点/缺点调用一个优先于另一个或仅仅是偏好?
除了使用参数调用存储过程并返回单个或列表对象之外,没有特定要求 . 没有什么花哨 .
谢谢 .
ObjectContext是EF4 - EF6中的基础API . 在引入EF 4.1时,较新的DbContext API在ObjectContext API之上进行了分层 .
当重写EF以生成EF Core时,DbContext API成为主要/唯一的API,并且没有提出ObjectContext .
因此,在ether API运行良好的情况下,您可能应该支持DbContext API以最终与EF Core兼容 .
1 回答
ObjectContext是EF4 - EF6中的基础API . 在引入EF 4.1时,较新的DbContext API在ObjectContext API之上进行了分层 .
当重写EF以生成EF Core时,DbContext API成为主要/唯一的API,并且没有提出ObjectContext .
因此,在ether API运行良好的情况下,您可能应该支持DbContext API以最终与EF Core兼容 .