我只是试图让一个项目,并用流利的自动映射运行(我熟悉流利,但用来写每个地图)功能NHibernate自动映射 - 问题与自动映射覆盖
我有一个反对ScriptType具有ParseRules财产
public class ScriptType : EntityBase
{
public virtual string Name { get; set; }
public virtual IList<ParseRule> ParseRules { get; set; }
}
这被自动映射为的hasMany,我想引用。
因此,我增加了一个自动映射覆盖到另一个组件...
public class ScriptTypeOverride : IAutoMappingOverride<ScriptType>
{
public void Override(AutoMapping<ScriptType> mapping)
{
mapping.References(x => x.ParseRules);
}
}
而且改变了我的配置,所以......
return configuration
.Mappings(m => m.AutoMappings
.Add(AutoMap.AssemblyOf<DatabaseInfo>()
.IgnoreBase<EntityBase>()
.Conventions.AddFromAssemblyOf<KeyConvention>()
.UseOverridesFromAssemblyOf<ScriptTypeOverride>()));
但我得到这个.... :(
来自表ScriptType的关联指的是未映射的类:System.Collections.Generic.IList`1 [[GIT.ScriptWizard.Entities.ParseRule ...
任何人都可以帮忙吗?
如果您有ParseRules的列表,则不能使用参考。引用是针对单个对象引用,而不是集合。像IList <>这样的集合需要一个HasMany。 –
感谢卡尔,你是对的 - 我误解了什么是参考。 –