2012-06-01 47 views
0

映射我有一個類的結構是這樣的:NHibernate的一個一對一的映射使用代碼

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和映射到代碼映射這個正確的方法是什麼?我無法找到1:1關係通過PK的例子。

回答

0

由於主鍵匹配,您可以使用Join。它甚至不需要自己的Id,因爲它依賴於項目

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); 
    } 
}); 
0

我認爲你應該使用這段代碼。

OneToOne(x => x.Properties, 
      x => x.PropertyReference(typeof(ProjectProperties).GetProperty("Properties"))); 
相關問題