mar*_*sco 4 .net c# autofac entity-framework-core
一般来说,我对 oop 和编程相当陌生,但有一件事我不明白,在使用 EF core 等关系数据库时,是否应该拥有不可变对象。如果我使用私有设置器设置属性,以便我只能在创建这些对象时分配值,我该如何更改它们的状态?我是否创建一个新的空对象,然后复制需要保持不变的每个属性并仅更新其中一些属性myObject.property = updatedValue?我是否使用工厂用正确的值实例化该对象?使用公共 setter 是否违反了 oop 原则?
例如,当服务器和客户端交换数据并且客户端对此数据进行一些处理时,我遇到了这个问题。当数据返回时,使用 dto 类,我仍然需要更新保存在数据库中的相关数据。
EF Core 确实支持不变性,更具体地说,它可以利用实体的构造函数。这使您能够为实体创建纯粹不可变的属性(仅生成只读支持字段的 getter),甚至整个实体也可以是不可变的。
\n需要考虑的一些要点:
\n我在这篇博文中更详细地阐述了。
\n| 归档时间: |
|
| 查看次数: |
3867 次 |
| 最近记录: |