在Nhibernate中使用IList不会初始化
我基本上有:在Nhibernate中使用IList不会初始化,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我基本上有: Public Class Job: MyBaseClass { public virtual string JobInformation {get;set;} ... public virtual List<Item> JobItems {get;set;} } 公共类作业:MyBaseClass { 公共虚拟字符串JobInformation{get;set;} ... 公共虚拟列表作业项{get;set;} } 我正在使用一个列表并在构造
Public Class Job: MyBaseClass
{
public virtual string JobInformation {get;set;}
...
public virtual List<Item> JobItems {get;set;}
}
公共类作业:MyBaseClass
{
公共虚拟字符串JobInformation{get;set;}
...
公共虚拟列表作业项{get;set;}
}
我正在使用一个列表并在构造函数中初始化它(JobItems=new List();)。但是,我遇到了一个异常(Nhibernate.Collection.Generic.PersistentGenericBag)
我读了,它说我应该使用IList
所以现在我有了
public class Job: MyBaseClass
{
public virtual string JobInformation {get;set;}
...
public virtual IList<Item> JobItems {get;set;}
}
public virtual void AddItem(Item item)
{
//snip validation
this.JobItems.Add(item);
}
公共类作业:MyBaseClass
{
公共虚拟字符串JobInformation{get;set;}
...
公共虚拟IList作业项{get;set;}
}
公共虚拟无效附加项(项)
{
//剪报验证
this.jobbitems.Add(item);
}
但是,它会抛出NullReferenceException,因为JobItems尚未初始化。NHibernate何时初始化此集合?或者如何解决此问题?如果以前未初始化集合,则应初始化集合
private IList<Item> _jobItems;
public IList<Item> JobItems
{
get
{
return _jobItems ?? (_jobItems = new List<Item>());
}
private set
{
_jobItems = value;
}
}
private IList\u作业项;
公共物品
{
收到
{
返回_jobItems???(_jobItems=newlist());
}
专用设备
{
_作业项=价值;
}
}
如果以前未初始化集合,则应初始化该集合
private IList<Item> _jobItems;
public IList<Item> JobItems
{
get
{
return _jobItems ?? (_jobItems = new List<Item>());
}
private set
{
_jobItems = value;
}
}
private IList\u作业项;
公共物品
{
收到
{
返回_jobItems???(_jobItems=newlist());
}
专用设备
{
_作业项=价值;
}
}
使用支持字段,返回时确保它不为空
public IList<Item> JobItems
{
get { return _jobItems ?? (_jobItems = new List<Item>()); }
set { _jobItems = value; }
}
公共IList作业项
{
获取{return}jobItems???(_jobItems=new List());}
设置{u jobItems=value;}
}
使用支持字段,返回时确保它不为空
public IList<Item> JobItems
{
get { return _jobItems ?? (_jobItems = new List<Item>()); }
set { _jobItems = value; }
}
公共IList作业项
{
获取{return}jobItems???(_jobItems=new List());}
设置{u jobItems=value;}
}
如果我像这样在构造函数中初始化此集合,是否有任何特定原因导致此操作不起作用JobItems=new List()
如果我像这样在构造函数中初始化此集合,是否有任何特定原因导致此操作不起作用JobItems=new List()