加载NHibernate数组时,第一个元素为null

时间:2011-10-20 14:16:51

标签: c# nhibernate fluent-nhibernate

我有一个映射到数组的集合,它似乎工作正常。但是当我从数据库加载itens时,数组的第一个元素始终为null。有没有办法避免这种情况?

数组所有者的映射:

public class ConsistMap : BaseEntityMap<Consist>
    {
        public ConsistMap():
            base("consist_id")
        {
            Not.LazyLoad();

            Map(x => x.RemoveEmptyCars).Not.Nullable();

            HasMany(x => x.ConsistVehicles)
                .Inverse()
                .AsArray<int>(x => x.Position)
                .Cascade.AllDeleteOrphan()
                .OrderBy("position asc")
                .KeyColumn("consist_id");
        }
    }

元素映射:

public class ConsistVehicleMap : BaseEntityMap<ConsistVehicle>
    {
        public ConsistVehicleMap():
            base("consist_vehicle_id")
        {
            Not.LazyLoad();

            Map(x => x.Position).Not.Nullable();

            References(x => x.Consist).Not.Nullable();

            HasMany(x => x.Tickets)
                .Inverse()
                .Cascade.None()
                .KeyColumn("consist_vehicle_id");

            References(x => x.Vehicle)
                .Column("vehicle_id")
                .Not.Nullable();
        }
    }

为什么在创建Consist对象时,为什么ConsistVehicles数组的第一个元素为null?我检查了数据库上的数据,表中唯一的行是存储在数组中的元素。

谢谢!

1 个答案:

答案 0 :(得分:1)

只是一个猜测:你可能从1开始,而不是0。

相关问题