我正在使用抽象类require 'json'
payload.to_json
,如下所示:
RepositoryItemBase
由于打算将其保存到存储库,我做出了以下设计选择:
public abstract class RepositoryItemBase : ICloneable, IEquatable<Dto>
{
protected internal Guid Id => Guid.NewGuid();
protected RepositoryItemBase() { }
public object Clone()
{
return MemberwiseClone();
}
public bool Equals(Dto other)
{
//??
}
}
时,我希望在保存时克隆该项目,以便我可以继续编辑它而不更改存储的引用,直到我再次致电repo.Save(repoItem)
; repo.Save(repoItem)
,我希望它可以调用私有Save
; repo.Update(repoItem)
并且具有相同Id的存储项也具有相同的属性值,则该方法立即返回实际上持久化的内容; 我的问题是:
是否有常见的C#/ .Net成语/接口来区分基于Id的比较和基于属性值的比较?我想独立完成这两种比较。
Save
是实施的最佳界面吗?.Net是否有某种
IEquatable
或IIdentifiable
界面,IIdentity
属性或类似内容?