【发布时间】:2015-03-17 08:40:21
【问题描述】:
我正在尝试在我的 MVC 项目中的两个表之间建立查找,其中 nHibernate 被大量使用。我已经映射了两个表,只要我将它们视为单独的实体,它就可以很好地工作。但现在我需要在加载 table1 时以一对一映射从 table2 中提取数据的能力。
Lead.cs
using System;
using FluentNHibernate.Mapping;
namespace SMSService.Models
{
//Table One
public class Leads
{
public virtual int Id { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual string TaskName { get; set; }
//The second table
public virtual Workflow Workflow { get; set; }
}
public class LeadsClassMap : ClassMap<Leads>
{
public LeadsClassMap()
{
Table("Leads");
Id(x => x.Id).GeneratedBy.Native();
Map(x => x.FirstName);
Map(x => x.LastName);
Map(x => x.TaskName);
//My attempt to join the tables
HasOne(x => x.Workflow).Column("LeadId");
}
}
}
Workflow.cs
using System;
using FluentNHibernate.Mapping;
namespace SMSService.Models
{
//Table Two
public class Workflow
{
public virtual int Id { get; set; }
public virtual int LeadId { get; set; }
public virtual bool PreviouslySubmitted { get; set; }
public virtual Guid SubmittedBy { get; set; }
public virtual DateTime Modified { get; set; }
public virtual int WorkflowStep { get; set; }
}
public class WorkflowClassMap : ClassMap<Workflow>
{
public WorkflowClassMap()
{
Table("Workflow");
Id(x => x.Id).GeneratedBy.Native();
Map(x => x.LeadId);
Map(x => x.PreviouslySubmitted);
Map(x => x.SubmittedBy);
Map(x => x.Modified);
Map(x => x.WorkflowStep);
}
}
}
那么,我的目标是,我可以有一个调用 Leads 和 Workflows 的方法,这样我就可以执行以下操作:
foreach (var lead in Leads) {
var prevSubmitted = lead.Workflow.PreviouslySubmitted;
}
然而,我遇到的第一个问题是在代码中出现“.Column”红色标记,错误为“无法解析符号'Column'”。所以我不确定我的语法是否完全错误,或者我在某处遗漏了一些关键。
【问题讨论】:
标签: c# nhibernate model-view-controller