我正在使用 Fluent NHibernate 配置映射。
所以,我有一个组件定义如下:
public class Tracking
{
public virtual string CreatedBy { get; set; }
public virtual DateTime CreatedOn { get; set; }
public virtual string UpdatedBy { get; set; }
public virtual DateTime UpdatedOn { get; set; }
public virtual string DeletedBy { get; set; }
public virtual DateTime DeletedOn { get; set; }
public Tracking()
{
CreatedBy = Environment.UserName;
UpdatedBy = Environment.UserName;
}
}
使用以下映射进行映射:
class TrackingMap : ComponentMap<Tracking>
{
public TrackingMap()
{
Map(c => c.CreatedBy);
Map(c => c.CreatedOn);
Map(c => c.UpdatedBy);
Map(c => c.UpdatedOn);
Map(c => c.DeletedBy);
Map(c => c.DeletedOn);
}
}
然后,我有另一个引用该组件的类:
public class Mission
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual Tracking Tracking { get; set; }
}
使用相应的映射:
class MissionMap : ClassMap<Mission>
{
public MissionMap()
{
Id(x => x.Id);
Map(x => x.Name);
Component(x => x.Tracking);
}
}
我的问题当我建立会话工厂时,我有一个带有消息的FluentConfigurationException
从“任务”的属性“跟踪”引用的“跟踪”的多个外部组件无法继续。
但是,当我使用内联映射时:
class MissionMap : ClassMap<Mission>
{
public MissionMap()
{
Id(x => x.Id);
Map(x => x.Name);
Component(x => x.Tracking, m =>
{
m.Map(c => c.CreatedBy);
m.Map(c => c.CreatedOn);
m.Map(c => c.UpdatedBy);
m.Map(c => c.UpdatedOn);
m.Map(c => c.DeletedBy);
m.Map(c => c.DeletedOn);
});
}
}
它工作得很好。
任何帮助将不胜感激。