实体框架核心-选择代码优先方法和数据库优先方法的歧义

时间:2019-01-16 08:28:43

标签: ef-code-first entity-framework-core ef-database-first

就我的情况而言,选择 Entity Framework Core 选择“代码优先”方法或“数据库优先”方法从最佳方法的角度来看都是令人困惑的。

我有一个包含一些复杂存储过程的现有数据库。

  1. 如果我选择“数据库优先”方法,那么从性能角度来看会很好吗?

  2. 如果选择“代码优先”方法,是否可以使用Entity Framework Core映射现有的存储过程和实体?如果有可能,是否有任何不利之处?

1 个答案:

答案 0 :(得分:1)

我们还不能映射它们,但是我们可以称呼它们:

Public Class Sample
  Private Sub SpTest()
    Dim oContext As SchoolContext
    Dim oStudents As List(Of Student)

    oContext = New SchoolContext
    oStudents = oContext.Students.FromSql("GetStudents 'Bill'").ToList
  End Sub
End Class

有一些限制:

  • 存储过程必须返回实体数据
  • 魔术字符串的用法(尽管可以通过构建一个小的API来避免这种情况)
  • EF Core尚不支持命名参数(截至本文撰写之时)

您可以在此处找到更多信息:

http://www.entityframeworktutorial.net/efcore/working-with-stored-procedure-in-ef-core.aspx

关于您的性能问题,我建议进行一些测试和基准测试。