代码之家  ›  专栏  ›  技术社区  ›  efdee

氨气一对多

  •  0
  • efdee  · 技术社区  · 17 年前

    我有一个非常简单的nhibernate设置:一个item对象,它有一个itemdetail对象集合。他们之间的一对多关系。

    在我的Web应用程序中,我编写的代码类似于:

    item.Details.Add(new ItemDetail { Item = item, Text = "blah" });
    itemRepos.Save(item);
    

    这一切都很好。但是,现在我正在编写一个小控制台应用程序来执行一些导入,重用我的nhibernate设置和映射,但是在执行相同的代码时,我的保存尝试会导致引发异常,警告我itemdetail.item包含空项或临时项。我认为这意味着它在抱怨itemdetail.item指的是一个还没有保存的项目(这个项目肯定不是空的),但这听起来很奇怪,因为它正是我要保存的项目。

    我是不是忽略了一些小事?

    2 回复  |  直到 17 年前
        1
  •  0
  •   DefLog    17 年前

    您所提供的详细程度还不足以了解正在发生的事情。

    如果我冒险猜测,这与级联和项目和细节之间的双向关系有关。您可能在关系的单侧指定了一个级联规则,但在单侧没有指定。尝试在此处添加级联规则。

        2
  •  0
  •   efdee    17 年前

    结果发现,问题是由于日期格式错误(SQL错误),保存该项失败,但未捕获到该错误。然后,当它继续保存项目详细信息时,它抱怨没有保存项目。

    很奇怪,它没有引发关于SQL错误的异常,不是吗?

    推荐文章