我刚刚尝试使用Fluent Automapping启动并运行一个项目(我对Fluent很熟悉,但习惯于编写每个地图)
我有一个具有ParseRules属性的对象ScriptType
public class ScriptType : EntityBase
{
public virtual string Name { get; set; }
public virtual IList<ParseRule> ParseRules { get; set; }
}这是自动映射为HasMany和我想要的参考。
因此,我向另一个程序集添加了AutoMapping重写...
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 ...
有谁能帮帮忙吗?
发布于 2011-06-21 01:08:12
References用于在两个实体之间创建多对一关系,并应用于“多端”。您引用了一个单独的其他实体,因此使用References方法。HasMany是References关系的“另一端”,应用于“一端”。
来自Fluent's website。
您的关系应该如何工作?它看起来像一个经典的一对多ParseRules,所以这应该是HasMany在ScriptType方面,就像Fluent做的那样。
也许,如果您想在这里拥有双向关系,其中ParseRule端是关系的“拥有”端,那么您应该在ScriptType.ParseRules映射覆盖中使用Inverse()。
https://stackoverflow.com/questions/6412728
复制相似问题