0

我有一个这样的类结构:

public class BaseEntity
{
    public Guid Id { get; set; }
}

// CREATE TABLE Project (Id, Name)
public class Project : BaseEntity
{
    public ProjectProperties Properties { get; set; }
    public string Name { get; set; }
}

// CREATE TABLE ProjectProperties (Id, Markup)
// ForeignKey from ProjectProperties.Id -> Project.Id
public class ProjectProperties  : BaseEntity
{
    public int Markup { get; set; }
}

使用 NH 3.2 和按代码映射的正确方法是什么?我找不到通过 PK 建立 1:1 关系的示例。

4

2 回答 2

0

您可以使用 Join 因为主键匹配。它甚至不需要自己的 Id,因为它依赖于 Project

public class ProjectProperties
{
    public int Markup { get; set; }
}


// in ProjectMapping
Join("ProjectProperties", join =>
{
    join.Key("Id");
    join.Component(x => x.ProjectProperties, c =>
    {
        c.Property(x => x.Markup);
    }
});
于 2012-06-08T08:59:31.343 回答
0

我认为您应该使用此代码。

OneToOne(x => x.Properties,
           x => x.PropertyReference(typeof(ProjectProperties).GetProperty("Properties")));
于 2012-11-28T09:08:24.397 回答