如何使用流畅的 nhibernate 保存对象

发布于 2024-11-02 01:20:05 字数 597 浏览 5 评论 0原文

您好,我对如何使用流畅的 nhibernate 保存对象感到困惑。

假设我有一个 Foo 类,它与 ChildFoo 具有一对多的关系。

表 foo 有 id 和 name。表 ChildFoo 的 sourceID 与 foo 实体的 id 匹配。

映射看起来像这样。

class Foo 
{
   public virtual ID {get;set;}
   public IList<FooChild> Components{get;set;}
}

映射看起来像这样

public FooMap : ClassMap<FooMap> 
{
   public FooMap()
   {
      HasMany(x => x.Components).KeyColumn("SourceID");
   }
}

现在,当我想用​​一些组件集合保存 FooMap 时,我如何告诉 Fluent nhibernate 保存我创建的实体(一个 foo 类,其中存储了一组 Foo Children ),而不需要我要求我手动保存每个组件。

谢谢。

Hi am confused with how to save object with fluent nhibernate.

say I have a class Foo which has one to many relationship with ChildFoo.

Table foo has id and name. Table ChildFoo has sourceID which matches the id for the foo entity.

The mapping would look like this.

class Foo 
{
   public virtual ID {get;set;}
   public IList<FooChild> Components{get;set;}
}

the mapping would look like this

public FooMap : ClassMap<FooMap> 
{
   public FooMap()
   {
      HasMany(x => x.Components).KeyColumn("SourceID");
   }
}

Now when I want to save FooMap with some collection of Components, how do I tell fluent nhibernate to save the entity ( a class foo with a bunch of Foo Children stored in the Components list) I have created, without me requiring me to save each component manually.

thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

恏ㄋ傷疤忘ㄋ疼 2024-11-09 01:20:05

您需要将 HasMany 映射更改为以下内容:

HasMany(x => x.Components).KeyColumn("SourceID").Inverse().Cascade.All();

另外,您的映射似乎不正确。应该是这样的:

public FooMap : ClassMap<Foo> 
{
   public FooMap()
   {
      Id(x => x.ID, "SourceID");
      HasMany(x => x.Components)
         .KeyColumn("SourceID")
         .Inverse()
         .Cascade.All();
   }
}

You'd want to change your HasMany mapping to the following:

HasMany(x => x.Components).KeyColumn("SourceID").Inverse().Cascade.All();

Also it looks like your mapping is incorrect. It should be this:

public FooMap : ClassMap<Foo> 
{
   public FooMap()
   {
      Id(x => x.ID, "SourceID");
      HasMany(x => x.Components)
         .KeyColumn("SourceID")
         .Inverse()
         .Cascade.All();
   }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文