【发布时间】:2021-05-24 13:03:42
【问题描述】:
使用 Blazor WebAssembly 时,默认情况下会创建三个项目 - 客户端、服务器和共享。 哪个项目是定义 EF Core 数据模型的代码的最佳选择?
- 如果我把它放在服务器中,我必须在客户端项目中创建它的客户端对应项,这会创建冗余代码
- 如果我把它放在 Shared 中并使用 Data Annotations,客户端会变得传递依赖 EF Core ????
- 如果我将其放入 Shared 并使用 Fluent API,我将不得不检查多个文件以了解单个属性(例如,此属性是否必需?它的最大长度是多少?)
似乎我选择了三害中的较小者,这似乎是 Fluent API。 还有其他我没有考虑到的方面吗?
【问题讨论】:
-
实际上,并不是您想要共享的所有数据模型。在这种情况下,您将在两个不同的位置拥有模型。虽然将共享文件夹用于数据模型似乎很有吸引力,但我发现它仅对 POC 有用。数据注释是有限的。访问共享 dll 中的模型构建器会导致客户端膨胀。
-
您真的希望将您的数据库设计放在一个交付给客户端的 DLL 中吗?
标签: c# entity-framework blazor