我们正在权衡 Model First 和 DB first 开发之间的利弊。我发现了以下 Model First Pros 1. C# dev 不需要了解 SQL stmts。2. C# dev 可以为他的业务需求创建一个更具体的实体。缺点 1. 无法使用供应商数据库中可用的更精细功能(即 SQL 服务器中的列约束)
对于 DB,优缺点是相反的。这里有什么大不了的吗。我正在慢慢地向 DB 先倾斜。建议。
我们正在权衡 Model First 和 DB first 开发之间的利弊。我发现了以下 Model First Pros 1. C# dev 不需要了解 SQL stmts。2. C# dev 可以为他的业务需求创建一个更具体的实体。缺点 1. 无法使用供应商数据库中可用的更精细功能(即 SQL 服务器中的列约束)
对于 DB,优缺点是相反的。这里有什么大不了的吗。我正在慢慢地向 DB 先倾斜。建议。
根据您的项目,目前您可以使用三种可用的方法:DB First、Model First 和 Code First。
显然,在使用它们之前应该考虑一些权衡。
在开发业务对象及其关系时,您已经生成了大部分数据模型,并且禁止这种冗余是新方法和技术背后的理念。考虑到这一点,如果数据模型要经常更改,DB First 不是一个好的选择。
尽管整个想法很棒,但新方法还不够成熟(见证Entity Framework
频繁发布和重大变化)。他们无法完全消除提到的冗余,也无法涵盖其框架中的所有 DB First 功能。此外,这项工作是通过中间层完成的,与 DB First 方法相比,这会降低性能。不幸的是,除非您正在进行项目,否则您不会通知未发现的功能。因此,如果您需要复杂的功能或拥有复杂的数据模型,并且业务模型不会经常更改,和/或性能是高优先级,那么 DB First 是您的选择。
在我看来,这场斗争中正在发生的事情是澄清应该回答的正确问题。由于数据库技术的优先级是稳定性,它们不受频繁或重大变化的影响(见证关系数据库)。从开发的角度来看,我们定义了我们的对象及其关系,并将它们存储在集合中,并在需要时轻松检索它们,所以为什么要麻烦这些易失性对象(它们在运行时在 RAM 中)将被存储在哪里以及如何存储. 虽然提到的技术是开发人员方面的努力,但数据库技术方面也有努力,例如内存数据库、面向对象的数据库......