使用多对多集合保存额外信息

发布于 2024-10-04 13:11:59 字数 460 浏览 1 评论 0原文

我正在尝试为以下问题构建映射。 一个案例可以有多个客户端,一个客户端可以附加到多个案例。

我有这些映射: 案例

 Map(x => x.CaseNumber);
        References(x => x.Status).Cascade.All();
        HasManyToMany<Client>(x => x.Clients)
        .Table("CaseToClient")
        .Access.CamelCaseField(Prefix.Underscore)
        .Cascade.SaveUpdate()
        .LazyLoad();

现在,我的 CaseToClient 表由 Case_Id 和 Client_Id 组成,我想要的是表中的另一列,其中包含与案例相关的客户布尔值。如何添加列以便我可以写入属性?

I am trying to build a mapping for the following problem.
A Case can have multiple clients and a client can be attached to multiple Cases.

i have these mappings :
Case

 Map(x => x.CaseNumber);
        References(x => x.Status).Cascade.All();
        HasManyToMany<Client>(x => x.Clients)
        .Table("CaseToClient")
        .Access.CamelCaseField(Prefix.Underscore)
        .Cascade.SaveUpdate()
        .LazyLoad();

Now my CaseToClient Table consists of Case_Id and Client_Id what i want is another column in the table with in it a boolen of the client is relevant for the case. How can i add the column so that i can write the property?

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

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

发布评论

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

评论(1

余生共白头 2024-10-11 13:11:59

不要使用多对多,使用两个一对多映射。

为 ClientCase 创建一个单独的实体,它引用 Case 和 Client,并且还具有您的布尔属性。

来自 NHibernate 实践,第 193 页:

“我们避免使用多对多
协会,因为几乎有
总是其他必须的信息
附加到之间的链接
关联实例;最好的办法
表示此信息是通过
中级关联类。”

Don't use many to many, use two one-to-many mappings.

Create a separate entity for ClientCase, which references both Case and Client and also has your boolean property.

From NHibernate In Action, page 193:

"we avoid the use of many-to-many
associations because there is almost
always other information that must be
attached to the links between
associated instances; the best way to
represent this information is via an
intermediate association class."

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文