【发布时间】:2023-02-24 16:23:26
【问题描述】:
C# 9.0 为更多面向数据的结构引入了记录。我想将它们用于与某种 ORM(如 Dapper)一起使用的实体对象,因为它们提供了许多有用的功能,例如基于值的相等性。我相信一个建议或良好做法是保持记录不可变(仅限 init),但这意味着在更改业务逻辑中的实体时需要进行大量复制操作。使用它是一种可接受的做法吗可变的数据库实体的记录?
【问题讨论】:
-
是的,如果你想让它不可变,你可以使用
readonly关键字。 -
我不想让它们不可变,我想让它们可变,但我认为这违反了保持记录始终不可变的最初想法。另一方面,我认为没有理由使用具有自我实现的 equals 方法的类而不是可变记录。
标签: c# database entity record dapper