Session 初始化[不可用#]-未能延迟初始化集合,未关闭任何会话或会话

Session 初始化[不可用#]-未能延迟初始化集合,未关闭任何会话或会话,session,c#-4.0,nhibernate,fluent-nhibernate,Session,C# 4.0,Nhibernate,Fluent Nhibernate,我有一个叫做fixture的类,它有两个属性description和date。现在我不想直接对这两个属性进行操作,但我想对本例中的某个集合对象“Allattribute”进行操作,我在每个属性的get和set中都感觉到了这一点 检索工作正常,但在坚持的同时,我得到了这个错误 初始化[不可用#]-未能延迟初始化集合,未关闭任何会话或会话 模型和映射器的代码如下: 公共类Fixture:EntityBase { 您是如何尝试持久化/保存对象的?错误消息非常清楚,您是在处理/关闭会话后尝试保存的。请确

我有一个叫做fixture的类,它有两个属性description和date。现在我不想直接对这两个属性进行操作,但我想对本例中的某个集合对象“Allattribute”进行操作,我在每个属性的get和set中都感觉到了这一点

检索工作正常,但在坚持的同时,我得到了这个错误

初始化[不可用#]-未能延迟初始化集合,未关闭任何会话或会话

模型和映射器的代码如下:

公共类Fixture:EntityBase {


您是如何尝试持久化/保存对象的?错误消息非常清楚,您是在处理/关闭会话后尝试保存的。请确保在整个请求过程中保持会话打开,并且仅在提交所有事务后才关闭/保存会话。如果我将默认设置为“if”,而不是“自定义get and Set方法”{get;set;}这样就不会引起任何问题。只有当我在getter setter中放入一些代码时,它才会弹出。
    public Fixture() {
        //PogObject = new List<PogObject>();
        //ObjectFixtureDate = new List<Objectfixturedate>();
    }
        public virtual long IDPOGObject { get; set; }
    private ObservableCollection<DictionaryEntry> m_allattributes = new ObservableCollection<DictionaryEntry>();
    private IList<FixtureDate> mFixtureDate = new List<FixtureDate>();
    private IList<FixtureDesc> mFixtureDesc = new List<FixtureDesc>();
    private IList<FixtureFlag> mFixtureFlag = new List<FixtureFlag>();


    public virtual IList<FixtureDate> FixtureDate
    {
        get
        {
            mFixtureDate.Clear();
            foreach (var item in m_allattributes)
            {
                if (item.Value is FixtureDate)
                {
                    mFixtureDate.Add((FixtureDate)item.Value);
                }
            }

            return mFixtureDate;
        }


        set
        {
            //try
            //{
                if (value.Count != 0)
                {
                    foreach (var item in value)
                    {
                        DictionaryEntry dEntry = new DictionaryEntry(item.Dictionary.DictionaryName, item);
                        if (!m_allattributes.Contains(dEntry))
                        {
                            m_allattributes.Add(dEntry);
                        }
                    }
                }
            //}
            //catch (Exception ex)
            //{

            //}

            mFixtureDate = value;
        }
    }


    public virtual IList<FixtureDesc> FixtureDescription
    {
        get
        {
            mFixtureDesc.Clear();
            foreach (var item in m_allattributes)
            {
                if (item.Value is FixtureDesc)
                {
                    if (!mFixtureDesc.Contains((FixtureDesc)item.Value))
                    {
                        mFixtureDesc.Add((FixtureDesc)item.Value);
                    }
                }
            }

            return mFixtureDesc;
        }


        set
        {
            if (value.Count != 0)
            {
                foreach (var item in value)
                {
                    DictionaryEntry dEntry = new DictionaryEntry(item.Dictionary.DictionaryName, item);

                    // DictionaryEntry dEntry = new DictionaryEntry(item.DescNum, item);
                    if (!m_allattributes.Contains(dEntry))
                    {
                        m_allattributes.Add(dEntry);
                    }
                }
            }

            mFixtureDesc = value;

        }
    }




}
    public FixtureMap() {
        Table("SPOG_ObjectFixture");
        Not.LazyLoad();
        Id(x => x.IDPOGObject).GeneratedBy.Foreign("PogObject");
        HasMany(x => x.FixtureDescription).Cascade.AllDeleteOrphan().Inverse().Not.LazyLoad().KeyColumn("IDPOGObject").Fetch.Join();
        HasMany(x => x.FixtureDate).Cascade.AllDeleteOrphan().Inverse().Not.LazyLoad().KeyColumn("IDPOGObject");

    }
}