C# 亚音速ActiveRecord模板:生成的代码转换int时出错?整型

C# 亚音速ActiveRecord模板:生成的代码转换int时出错?整型,c#,activerecord,subsonic3,C#,Activerecord,Subsonic3,我刚开始探索亚音速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; } 这个异常是可以理解的,

我刚开始探索亚音速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。关于这两个键为什么不同步有什么想法吗?

正如John Sheehan指出的那样,确保任何主键都不可为空(为什么会为空?)

在定义为主键的列中不能有空值。如果是这样,请确保join有问题(如果实体来自“视图”)。

您的主键列可以为空吗?我不认为亚音速支持这一点。谢谢你,这帮助我缩小了范围。我们有一些填充了虚拟数据的测试表,其中主键从未标记为“NOTNULL”。