【问题标题】:SubSonic ActiveRecord templates: generated code produces error converting int? to intSubSonic ActiveRecord 模板:生成的代码在转换 int 时产生错误?到 int
【发布时间】:2010-07-07 20:23:46
【问题描述】:

我刚开始探索 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;。关于为什么两者不同步的任何想法?

【问题讨论】:

  • 您的主键列是否可以为空?我不认为 SubSonic 支持。
  • 谢谢,这帮助我缩小了范围。我们有一些填充了虚拟数据的测试表,它们的主键从未标记为“非空”。

标签: c# activerecord subsonic3


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    正如 John Sheehan 所指出的,确保任何主键都不能为空(为什么会这样?)非常重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-14
      • 2012-01-12
      • 2023-04-10
      • 1970-01-01
      • 2012-12-16
      • 2016-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多