在将 SubSonic 3 与 ActiveRecord T4 模板一起使用时,生成的代码显示了许多关于 CLS 合规性、未使用项目和缺少 GetHashCode() 实现的警告。
为了避免它们,我做了以下修改:
// Structs.tt
[CLSCompliant(false)] // added
public class <#=tbl.CleanName#>Table: DatabaseTable
{ ...
// ActiveRecord.tt
[CLSCompliant(false)] // added
public partial class <#=tbl.ClassName#>: IActiveRecord
{
#region Built-in testing
#pragma warning disable 0169 // added
static IList<<#=tbl.ClassName#>> TestItems;
#pragma warning restore 0169 // added
...
public override Int32 GetHashCode() // added
{
return this.KeyValue().GetHashCode();
}
...
有没有更好的方法来摆脱警告?还是更好的 GetHashCode() 实现?