【发布时间】:2015-04-06 15:31:56
【问题描述】:
Base DAO 层中的I am a newbie to programming Windows forms application. I am stuck with an error for the past 2 days. I had a methodAdd()`
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.Mappings {
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");
}
}
}
【问题讨论】:
-
AssertionFailure was unhandled null id in RKG.SCM.DomainObjects.MarketScenario entry(发生异常后不要刷新Session)
标签: c# nhibernate