1

我的问题是我有父类,并且对于每个父类,我都有 B 类列表。例如,这些表格是:

图片

id
type
item
filename

电脑

id
owner
age

工作人员

id
name
age

我们为每台计算机和工作人员提供了许多图像。在计算机和工人类别中,我们有图像列表。对于计算机,图像项目是:

id=auto generate
type=1
item= id of computer

对于工人来说,图像项目是:

id=auto generate
type=2
item=id of worker

这些类应该是: 计算机:-id -age -owner -images 工人:-id -age -name -images

关于图像,我不确定我需要什么,但类似:-id -filename(可选,如果映射需要)-type -item

一些想法如何映射?

4

1 回答 1

1
class ComputerMap : ClassMap<Computer>
{
    public ComputerMap()
    {
        HasMany(x => x.Images)
            .Where("type = 1")
            .KeyColumn("item")
            .Inverse()
            .Cascade.All();
    }
}

class WorkerMap : ClassMap<Worker>
{
    public WorkerMap()
    {
        HasMany(x => x.Images)
            .Where("type = 2")
            .KeyColumn("item")
            .Inverse()
            .Cascade.All();
    }
}

class ImageMap : ClassMap<Image>
{
    public WorkerMap()
    {
        ReferencesAny(x => x.Item)
            .EntityIdentifierColumn("item")
            .EntityTypeColumn("type")
            .AddMetaValue<Computer>(1)
            .AddMetaValue<Worker>(2)
            .IdentityType<int>();     <-- maybe optional
    }
}

// in Computer and Worker have this
public void AddImage(Image image)
{
    this.Images.Add(image);
    image.Item = this
}
于 2012-01-10T10:05:06.067 回答