直接在Castle ActiveRecord中设置BelongsTo关联列

时间:2012-05-17 12:48:26

标签: .net castle-activerecord

说我有以下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是我目前正在测试的功能所需要的。

感谢。

1 个答案:

答案 0 :(得分:0)

我找到了一个能够完成我需要的黑客攻击,但却对NH缓存产生负面影响(我认为):我只是分配一个“新”问题,用现有问题的ID进行实例化。它看起来很可怕,而且,就像我说的那样,它基本上用这些(非常)部分填充的问题对象加载缓存(未经验证,但行为似乎表明了这一点)。