Dra*_*ex_ 7 c# entity-framework blazor
使用 Blazor WebAssembly 时,默认情况下会创建三个项目 - 客户端、服务器和共享。哪个项目是定义 EF Core 数据模型的代码的最佳选择?
看起来我正在三害相权取其轻,这似乎是 Fluent API。 还有哪些方面是我没有考虑到的?
您将 DTO(数据传输对象)放入共享项目中。这是 Blazor 的主要优势之一。
您可以使用模型实体作为 DTO,但我只会考虑将其用于(非常)小的项目。然后EF(DbContext和Fluent API)仍然只需要在服务器上。不要将其添加到共享项目中。
对于较大的项目,请使用单独的 DTO 并在服务器 API 中进行映射。
在共享项目中的实体上使用 System.ComponentModel.DataAnnotations 命名空间中的属性。这些在 UI 和客户端验证中很有用,并且不会引入对 EF 的依赖。
然后使用服务器项目中的 Fluent API 进行任何其他 EF 配置。