比方說,我有一個表:流利的NHibernate:用不同的名稱映射列
Project
Id
Title
ProjectManagerId
ContactId
ProjectManagerId和使用ContactID是從名爲Person表這兩個ID:
Person
PersonId
Firstname
Lastname
我該如何映射這兩列創建一個人物對象? (使用自動映射或流暢的法線映射)。
感謝
比方說,我有一個表:流利的NHibernate:用不同的名稱映射列
Project
Id
Title
ProjectManagerId
ContactId
ProjectManagerId和使用ContactID是從名爲Person表這兩個ID:
Person
PersonId
Firstname
Lastname
我該如何映射這兩列創建一個人物對象? (使用自動映射或流暢的法線映射)。
感謝
只需創建兩個類爲:
public class Person
{
public virtual int PersonId { get; set; }
public virtual string FirstName { get; set; }
public virtual string Surname { get; set; }
}
public class Project
{
public virtual int ProjectId { get; set; }
public virtual string Title { get; set; }
public virtual Person ProjectManager { get; set; }
public virtual Person Contact { get; set; }
}
和項目的映射類,因爲它比人:)更有趣
public class ProjectMap : ClassMap<Project>
{
public ProjectMap()
{
Id(x => x.ProjectId);
Map(x => x.Title);
References(x => x.ProjectManager);
References(x => x.Contact);
}
}
如果您正在使用FNH
映射覆蓋將如下所示:
public class ProjectMappingOverride : IAutoMappingOverride<Project>
{
public void Override(AutoMapping<Project> mapping)
{
mapping.Id(x => x.ProjectId); //Usually for Id I have a convention, and not define it here
mapping.Map(x => x.Title); //Also for simple properties. You could remove these lines if you have setup the conventions.
mapping.References(x => x.ProjectManager);
mapping.References(x => x.Contact);
}
}
不要忘了約會其他配置:)
嗯,我會做什麼是創建一個名爲「Person」的觀點,即包含所需的數據,然後映射,正如你將一個普通的表。
是的,我想過這個,但我想看看是否有更好的解決方案。首先,Isuru似乎在做我想做的事,不過謝謝! – Allov 2010-06-09 12:48:32
Aaah,我已閱讀過有關參考文獻,但我不確定如何使用它們。那就是現場!謝謝! – Allov 2010-06-09 12:47:44