【发布时间】:2016-04-08 23:52:37
【问题描述】:
我必须参加以下课程:
public class NominalValue
{
public int Id {get; set;}
public string ElementName {get; set;}
public decimal From {get; set;}
public decimal To {get; set;}
public bool Enable {get; set;}
public DateTime CreationDate {get; set;}
public int StandardValueId {get; set;} //FK for StandardValue
}
public class StandardValue
{
public int Id {get; set;}
public string ElementName {get; set;}
public decimal From {get; set;}
public decimal To {get; set;}
public bool Enable {get; set;}
public DateTime CreationDate {get; set;}
}
用户想要填写nominalValue 对象属性。填充nominalValue 属性可以通过两种方式执行:
- 用户手动填写
nominalValue的值。 - 用户从
standardValue对象加载nominalValue的值,然后更改或不更改某些值。
有时我需要知道指定元素的nominalValue 对象的某些属性是否等于对应的standardValue?
我不想从Db 加载standardValue 来检查这个相等性,所以我决定在NominalValue 类中定义一个HashValue 属性:
public class NominalValue
{
public int Id {get; set;}
public string ElementName {get; set;}
public decimal From {get; set;} //<-- 1st parameter for generating hash value
public decimal To {get; set;} //<-- 2nd parameter for generating hash value
public bool Enable {get; set;} //<-- 3rd parameter for generating hash value
public DateTime CreationDate {get; set;}
public int StandardValueId {get; set;}
public string HashValue {get;set;} //<-- this property added
}
当用户使用standardValue 属性填充nominalValue 属性时,我根据3 个属性(From、To、Enable)计算其值并将其与其他属性一起保存,当我检查是否nominalValue 是否填充standardValue,我计算From、To、Enable 的哈希码并将结果与HashValue 进行比较(而不是从Db 加载standardValue)。
是否有任何机制可以根据 3 个属性值(From、To、Enable)计算唯一的哈希码?
【问题讨论】:
-
这是一个很好的起点stackoverflow.com/questions/371328/…