C# 需要ASP.NET和Fluent NHibernate映射帮助

C# 需要ASP.NET和Fluent NHibernate映射帮助,c#,asp.net-mvc,fluent-nhibernate,C#,Asp.net Mvc,Fluent Nhibernate,我试图使用ASP.NET MVC和Fluent NHibernate在详细信息列表(管理页面)页面中显示外键列“NAME”字段值 仅供参考:主表为Employee。它有一个外键(DeptId)。 请参阅下文: //这是我的Employee类 公共类雇员:实体 { 公共虚拟字符串EmpName{get;set;} 公共虚拟int DeptId{get;set;} 公共虚拟字符串地址{get;set;} 公共虚拟日期时间DOB{get;set;} 公共虚拟布尔状态{get;set;} 公共虚拟部门部

我试图使用ASP.NET MVC和Fluent NHibernate在详细信息列表(管理页面)页面中显示外键列“NAME”字段值

仅供参考:主表为
Employee
。它有一个外键(
DeptId
)。 请参阅下文:

//这是我的Employee类
公共类雇员:实体
{
公共虚拟字符串EmpName{get;set;}
公共虚拟int DeptId{get;set;}
公共虚拟字符串地址{get;set;}
公共虚拟日期时间DOB{get;set;}
公共虚拟布尔状态{get;set;}
公共虚拟部门部门{get;set;}
}
//这是我的员工地图
公共类EmployeeMap:ClassMap
{
公共雇员地图()
{
表(“员工”);
Id(e=>e.Id).列(“EmpId”);
Map(e=>e.EmpName);
Map(e=>e.DeptId);
地图(e=>e.Address);
Map(e=>e.DOB);
地图(e=>e.Status);
}

}
在您的员工地图中,您需要添加对外键的引用。不仅仅是一张地图

References(x => x.Department)
    .TheColumnNameIs("ID")
    .PropertyRef(d => d.DeptId);

由于两个表之间存在关系,因此您可以使用以下命令访问Department的所有属性:
emp.Department.XXX

不知道你的部门名attrbute叫什么

<td>@Html.DisplayFor(e => emp.Department.Deptname)</td>
@Html.DisplayFor(e=>emp.Department.Deptname)

查看您的实体和地图。您没有告诉NHibernate员工和部门之间的关系。 您可以从实体类和映射(e=>e.DeptId)中删除公共虚拟int-DeptId{get;set;}来自EmployeeMap。相反,您必须添加引用,如eddie_31003帖子中所述:

References(x => x.Department, "DeptId");

欢迎来到SO。请不要添加
谢谢
和其他标记行,这里不鼓励使用它们。我已经尝试过你的方法@Html.DisplayFor(e=>emp.Department.Name),但它没有显示。你能发布你的部门模型吗?