FluentNhibernate 地图值对象

FluentNhibernate Map ValueObject

我有以下用例:

public class Object {
  long Id
   ...
  ISet<Tags> tags
}
        
public class Tag : IEquatable<Tag> {
  string Label;
}

对象是聚合根并标记值对象。 两者都存储在 2 个不同的 tables:

CREATE TABLE incident(id bigint, ...)
CREATE Table tag (object_id bigint References object(id), label varchar,...)

我正在尝试使用 FluentNhibernate 创建 ClassMap,它适用于对象,但我找不到用 Tag

映射它的方法
public ObjectsMapping()
        {
            Id(x => x.Id).GeneratedBy.Assigned();
            Version(x => x.ObjectVersion).Column("object_version");         
            HasMany(x => x.Tags).Inverse().Cascade.All().KeyColumn("object_id");
        }

public TagsMapping()
        {
            CompositeId().KeyProperty(x => x.Label).KeyProperty(x => x.CreationTimestamp);
            Map(x => x.Label);
            Map(x => x.CreationTimestamp);
        }

知道如何映射与另一个 table 的 ValueObject 具有一对多关系的实体吗?

基本上我在 NHibernate

中寻找 Set() 的等价物

谢谢

我找到了解决方案: 在对象映射中:

 HasMany(x => x.Tags).Component(x => { x.Map(k => k.Label); }).Table("tag");