0

假设我有以下 AR 对象:

namespace Models
{
    [ActiveRecord(Lazy = true, Table = "Answer"), Serializable]
    public class Answer : ActiveRecordLinqBase<Answer>
    {
        public Answer() {}

        [PrimaryKey]
        public virtual int ID { get; set; }

        [BelongsTo("QuestionID")]
        public virtual Question Question { get; set; }
    }
}

我有什么办法可以直接设置 QuestionID 吗?为此,我尝试创建一个名为 QuestionID 的附加 AR [Property],但遇到了此处描述的 NH 错误:

http://devlicio.us/blogs/derik_whittaker/archive/2009/03/19/nhibernate-and-invalid-index-n-for-this-sqlparametercollection-with-count-n-error.aspx

我正在尝试对这个类进行单元测试,我真的不想建立一个数据库(在内存中或其他地方)来进行这个单元测试。对于当前正在测试的功能,我只需要设置 QuestionID 即可。

谢谢。

4

1 回答 1

0

我发现了一个 hack 可以完成我所需要的,但会对 NH 缓存产生负面影响(我认为):我只是分配给一个“新”问题,用现有问题的 ID 实例化。它看起来很可怕,而且,就像我说的那样,它本质上是用这些(非常)部分填充的问题对象(未验证,但行为似乎表明同样多)加载缓存。

于 2012-05-17T15:31:37.277 回答