我刚开始探索SubSonic 3的ActiveRecord,它的初始代码生成造成了错误。
Cannot implicitly convert type 'int?' to 'int'.
An explicit conversion exists (are you missing a cast?)
这是它抛出异常的行:
public override int GetHashCode() {
return this.pkEmp;
}
由于列pkEmp
被定义为int? _pkEmp;
,因此该例外是可以理解的。关于为什么两者不同步的任何想法?
答案 0 :(得分:3)
在定义为主键的列中不能有空值。如果是这样,请确保您在加入时遇到问题(如果实体来自“视图”)。
答案 1 :(得分:1)
John Sheehan指出,重要的是确保任何主键都不可为空(为什么它们会是空的?)。