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");
我有以下用例:
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");