当加载NHibernate数组集合时,第一个元素为空

本文关键字:第一个 元素 加载 NHibernate 数组 集合 | 更新日期: 2023-09-27 18:11:44

我有一个集合映射到一个数组,它似乎工作良好。但是当我从数据库中加载条目时,数组的第一个元素总是空的。有办法避免这种情况吗?

数组所有者的映射:

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();
        }
    }

任何想法为什么当组成对象被创建的ConsistVehicles数组的第一个元素是空的?我检查了数据库上的数据,表上唯一的行是存储在数组中的元素。

谢谢!

当加载NHibernate数组集合时,第一个元素为空

只是猜测:你可能开始位置在1而不是0