无法转换类型' NHibernate.Mapping.List'的对象输入' NHibernate.Mapping.IKeyValue'

时间:2015-04-10 21:50:49

标签: nhibernate fluent-nhibernate

尝试在Fluent NHibernate中映射关系,我得到了这个例外。

以下是课程

public abstract class TaskContainer : DomainObject
{
    public virtual IList<Task> Tasks { get; set; }
}

public class Task : TaskContainer
{
    public virtual TaskContainer TaskContainer { get; set; }
    public virtual string Description { get; set; }

    public static Task Get(int id)
    {
        return Get<Task>(id);
    }
}

和映射文件

public class TaskMap : ClassMap<Task>
{
    public TaskMap()
    {
        Id(x => x.Id);
        Map(x => x.Description);
        ReferencesAny(x => x.TaskContainer)
            .EntityIdentifierColumn("TaskContainer_Id")
            .EntityTypeColumn("TaskContainerDiscriminator")
            .IdentityType<int>()
            .AddMetaValue<Task>("Task")
        HasMany(x => x.Tasks)
            .KeyColumn("TaskContainer_Id")
            .PropertyRef("Tasks")
            .AsList();
    }
}

我已经看到了对此错误的其他引用,但它们与实现List<T>而不是IList<T>有关,我没有这样做。

1 个答案:

答案 0 :(得分:0)

尝试:.PropertyRef(“TaskContainer”)