I am a newbie to programming Windows forms application. I am stuck with an error for the past 2 days. I had a method
添加()`在Base DAO层NHibernate.AssertionFailure做transaction.Commit()是什么意思?
public virtual void Add(T entity)
{
try
{
DomainObject domObj = entity as DomainObject;
if (domObj != null)
{
domObj.CreatedDate = domObj.LastModifiedDate = DateTime.Now.ToUniversalTime();
}
using (ITransaction transaction = GetTransaction)
{
_session.Save(entity);
//******* _session.SaveOrUpdate(entity);
// _session.Refresh(entity);
//transaction.Commit();
}
}
我试图transaction.Commit()
移动到在Base DAO层一个单独的方法。
public virtual void Commit(T entity)
{
using (ITransaction transaction = GetTransaction)
{
transaction.Commit();
}
}
我已对其余层进行了相应的更改。现在,当我运行应用程序并将数据输入到表单时,我得到此异常(NHibernate.AssertionFailure)。请帮忙。
这是MarketScenario实体类代码:
namespace RKG.SCM.ModelObjects
{ 公共类MarketScenarioModel { 公共MarketScenarioModel(){}
public MarketScenarioModel(string selectedMarketIds)
{
this.MarketIdList = selectedMarketIds;
}
public virtual int Id { get; set; }
public virtual ScenarioModel ScenarioModel { get; set; }
public virtual string MarketIdList { get; set; }
}
} 而这正是MarketScenario NHibernate的映射:
命名空间RKG.SCM.NHibernate。映射{
public class MarketScenarioMap : ClassMap<MarketScenario> {
public MarketScenarioMap() {
Table("market_scenario");
LazyLoad();
Id(x => x.Id).GeneratedBy.Identity().Column("id");
References(x => x.Scenario).Column("scenario_id");
Map(x => x.MarketIdList).Column("market_id_list");
}
}
}
什么例外? – JonasCz 2015-04-03 11:42:02
AssertionFailure在RKG.SCM.DomainObjects.MarketScenario条目中未处理的空ID(在发生异常后不刷新会话) – Arya 2015-04-03 11:44:01