【问题标题】:What exactly is the difference between code first and database first approach in mvcmvc中代码优先和数据库优先方法之间到底有什么区别
【发布时间】:2020-08-05 12:52:47
【问题描述】:

我不知道什么时候使用代码优先和数据库优先的方法。

我已经在使用代码优先和数据库优先,我知道它们是如何工作的,但我的问题是何时使用代码优先和数据库优先?

今天面试,面试官问我代码优先和数据库优先方法有什么区别。

我:当你使用小型应用程序时,先使用代码,当你使用大型应用程序时,先使用数据库

面试官再次问我代码优先和数据库优先方法的区别是什么。

我:在代码优先方法中,您不需要创建表意味着在类中设计表并在 web.config 中添加连接字符串 数据库优先方法您需要创建表和数据库

面试官再次问我代码优先和数据库优先方法的区别是什么。

我:沉默

面试官再次问我在哪种情况下我使用代码优先和数据库优先方法

我:沉默

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    当您使用小型应用程序时,请先使用代码;当您使用大型应用程序时,请先使用数据库

    您的答案是一个公平的经验法则,但这是不正确的,因为 它没有回答问题:“区别是什么`。这个答案未提出的问题“你什么时候会使用代码优先与数据库优先”(尽管你的面试官确实在最后问了这个问题)。

    在代码优先方法中,您不需要创建表意味着在类中设计表并在 web.config 中添加连接字符串,而数据库优先方法中您需要创建表和数据库

    这是正确的 - 但您是根据开发人员的体验来描述它,而不是实体框架在幕后实际执行的操作。


    对差异的更好描述是:

    • 数据库优先
      • 数据库是 EF 数据存储设计的规范定义。
        • 因此,您应该将数据库设计作为 SSDT 项目存储在源代码控制中!
      • EF 也知道您的 C# 实体类型,并使用 *.edmx 文件将您的 SQL 数据库映射到您的 C# 类型。
        • 即使 EF6 和 EF Core 不再在您的代码库中使用 EDMX 文件,EF 仍然在内部使用 EDMX。
    • 代码优先
      • 您的 C# 实体类型是 EF 数据存储的规范真实来源,EF 负责实例化实际的 SQL 数据库。

    请注意,您可以将 EF 迁移和实体类型脚手架与数据库优先和代码优先方法一起使用。

    【讨论】:

    • 一个是我首先在我的工作代码中发现的重要区别 - 当你更新你的课程然后不需要更多时间数据库 - 当你更新实体然后花更多时间这是最大的区别我发现
    猜你喜欢
    • 2019-10-23
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    相关资源
    最近更新 更多