Session 初始化[不可用#]-未能延迟初始化集合,未关闭任何会话或会话
我有一个叫做fixture的类,它有两个属性description和date。现在我不想直接对这两个属性进行操作,但我想对本例中的某个集合对象“Allattribute”进行操作,我在每个属性的get和set中都感觉到了这一点 检索工作正常,但在坚持的同时,我得到了这个错误 初始化[不可用#]-未能延迟初始化集合,未关闭任何会话或会话 模型和映射器的代码如下: 公共类Fixture:EntityBase {Session 初始化[不可用#]-未能延迟初始化集合,未关闭任何会话或会话,session,c#-4.0,nhibernate,fluent-nhibernate,Session,C# 4.0,Nhibernate,Fluent Nhibernate,我有一个叫做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");
}
}