gpt4 book ai didi

c# - Entity Framework Core OnModelCreating 与 Migration,正确的开发工作流程

转载 作者:行者123 更新时间:2023-12-02 13:13:11 25 4
gpt4 key购买 nike

您能否向我解释一下以下内容之间的区别:

  • 使用 EF Core 属性(例如 DataAnnotations)装饰类 VS 使用 OnModelCreating 中的代码定义关系和映射?
  • 使用 dotnet ef 迁移添加“xyz”创建迁移类 VS 将其配置到 OnModelCreating 中?

我正在尝试制定一种“开发工作流程”,但文档对此并不清楚。

我发现我应该:

  1. 创建您的第一个“数据库上下文”
  2. 创建一组代表我的模型的类
  3. 重写OnModelCreating以指定每个模型对象的映射策略
  4. 只要我更改某些内容,就执行 add migrationsef update 多次

这是使用 Entity Framework Core 的正确流程吗?

最佳答案

Decorate a class with EF Core attribute such as DataAnnotations VS using the code inside OnModelCreating to define relationships and mapping?

数据注释是“内联”的,但您将实体与持久性逻辑混合在一起。在我看来,这是最甜蜜的地方。 OnModelCreating 使您能够使用“Fluent API”,它更强大、更灵活,但/并且在某种程度上将持久性逻辑与您的实体分离。有时您会混合使用数据注释和 Fluent API。

Creating a Migration class using dotnet ef migrations add "xyz" VS configuring it into OnModelCreating?

不确定我是否理解这一点。我没有看到迁移的替代方案。

我使用 EF(代码优先)的方式是:

  1. 我编写实体并向其添加数据注释
  2. 我生成迁移并从中获取 SQL 脚本,然后删除迁移代码
  3. 针对数据库执行 .SQL
  4. 运行代码
  5. 实体变更
  6. 生成新的迁移 .SQL 并将其存储为项目的一部分

基本上,当您想要更新数据库以与新的/更改的代码兼容时,“迁移”是必要的。

当您必须告诉 EF 实体如何映射到数据库时,

OnModelCreating 是必要的。您不应该混淆这两件事。

关于c# - Entity Framework Core OnModelCreating 与 Migration,正确的开发工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42627952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com