您能告诉我以下内容之间的区别吗:


使用OnModelCreating内部的代码来定义具有关系和映射的具有EF Core属性的类(例如DataAnnotations VS)?
使用dotnet ef迁移创建Migration类,将“ xyz” VS配置为添加到OnModelCreating中吗?


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

我发现我应该:


创建您的第一个“数据库上下文”
创建一组代表我的模型的类
覆盖OnModelCreating以指定每个Model对象的映射策略
我更改某些内容时执行add migrationsef update的次数


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

最佳答案

用EF Core属性装饰一个类,例如DataAnnotations VS
使用OnModelCreating内部的代码定义关系并
映射?


数据注释是“内联”的,但是您将实体与持久性逻辑混合在一起。在我看来,这是最好的地方。 OnModelCreating使您可以使用“ Fluent API”,该API功能更强大,更灵活,但是/和/或将持久性逻辑从您的实体中分离出来。有时您会同时使用两者-数据注释和Fluent API。


使用dotnet ef迁移创建Migration类,添加“ xyz” VS
配置它到OnModelCreating?


不知道我明白这一点。我看不到迁移的替代方案。

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


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


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

当您必须告诉EF实体如何映射到数据库时,必须使用OnModelCreating。您不应混淆这两件事。

10-07 12:09