簡體   English   中英

nHibernate 2.1:將新實體保存為

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM