我们正在启动一个新的大型企业项目。数据库将包含100多个表格,并且我们将使用Entity Framework、Web API和MVC。
我的问题与解决方案的Entity Framework方面有关。我正在尝试在以下两者之间做出选择:
1.使用现有数据库的代码优先
2.使用现有数据库的EF设计器(数据库优先)
我知道我们可以使用EF从代码优先或EF设计器生成数据库,但我们更喜欢对数据库拥有完全控制,并以传统方式开发,因此我们排除了允许我们自动生成数据库的EF选项。
我在互联网上找到的大部分与代码优先相关的内容都是关于创建新数据库,然后使用代码迁移。当讨论数据库优先时,讨论更倾向于EF设计器。例如:代码优先 vs 模型/数据库优先 我更喜欢选择将代码优先到现有数据库的组合。
以下是我偏爱此选项的考虑因素,我想知道是否还有其他需要考虑的因素,以及我的假设/想法是否正确。
代码优先到现有数据库
我的问题与解决方案的Entity Framework方面有关。我正在尝试在以下两者之间做出选择:
1.使用现有数据库的代码优先
2.使用现有数据库的EF设计器(数据库优先)
我知道我们可以使用EF从代码优先或EF设计器生成数据库,但我们更喜欢对数据库拥有完全控制,并以传统方式开发,因此我们排除了允许我们自动生成数据库的EF选项。
我在互联网上找到的大部分与代码优先相关的内容都是关于创建新数据库,然后使用代码迁移。当讨论数据库优先时,讨论更倾向于EF设计器。例如:代码优先 vs 模型/数据库优先 我更喜欢选择将代码优先到现有数据库的组合。
以下是我偏爱此选项的考虑因素,我想知道是否还有其他需要考虑的因素,以及我的假设/想法是否正确。
代码优先到现有数据库
- 一开始需要构造大量的类,但我们可以通过EF Model Wizard进行初始生成。
- 然后可以修改这些类的任何自定义属性或删除不需要的内容,而不需要使用EF Designer扩展任何类。
- 缺点是对数据库的任何更改都必须手动添加到我们的类中,而不像使用设计器那样可以轻松更新。
编辑: 我想在这个领域我有些困惑。从阅读中得知,正确的Data First方法是为所有自动生成的类创建partial classes,然后将任何修改作为“业务”层的一部分进行。 因此,我的想法已经从支持Code First from Database转变为使用EF Designer到现有数据库,然后创建partial classes。