[英]NHibernate Where Contains / OrderBy / Skip / Take / Select To New Entity
[英]nHibernate 2.1: Save a new entity in a for
好吧,这让我发疯,我不明白为什么会这样。 我有一种保存JobExperiences列表的方法,而JobExperience与公司有关系。 问题来了,我试图在foreach中创建一个新公司并保存它,但是nHibernate也在尝试保存JobExperience ...,并且它没有引用到JobExperience!。 这是我的代码:
foreach (JobExperience exp in expList)
{
if (exp.Company.IsNew)
{
try
{
Company c = new Company();
c.Name = "CompanyTest";
companyService.Save(c); //throws an exception!
}
catch (Exception ex)
{
}
}
因此,该行正在尝试保存JobExperience,并且显示异常,因为它是未保存的。 但是,如果我尝试这样做:
try
{
Company c = new Company();
c.Name = "CompanyTest";
companyService.Save(c);
}
catch (Exception ex)
{
}
foreach (JobExperience exp in expList)
{
//[... code excluded for abbreviation ]
那行得通!而且它并没有试图保存任何JobExperience!....
有什么想法为什么会这样?
看起来,两者之间的关系目前是强制性的,您有两个基本选择:
1)如果在您的系统中可以有没有公司的JobExperience,则可以通过在hbm中说出not-null =“ true来更改关系映射为可选(如果您使用的是某些流利的映射工具中的等效项)使用一个)。
2)如果关系是强制性的,则应首先保存公司。
HTH,
贝里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.