首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fluent nHibernate自动映射- AutoMapping覆盖问题

Fluent nHibernate自动映射- AutoMapping覆盖问题
EN

Stack Overflow用户
提问于 2011-06-20 22:24:19
回答 1查看 1.5K关注 0票数 0

我刚刚尝试使用Fluent Automapping启动并运行一个项目(我对Fluent很熟悉,但习惯于编写每个地图)

我有一个具有ParseRules属性的对象ScriptType

代码语言:javascript
复制
public class ScriptType : EntityBase
{
    public virtual string Name { get; set; }
    public virtual IList<ParseRule> ParseRules { get; set; }
}

这是自动映射为HasMany和我想要的参考。

因此,我向另一个程序集添加了AutoMapping重写...

代码语言:javascript
复制
public class ScriptTypeOverride : IAutoMappingOverride<ScriptType>
{
    public void Override(AutoMapping<ScriptType> mapping)
    {
        mapping.References(x => x.ParseRules);
    }
}

并改变了我的配置...

代码语言:javascript
复制
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 ...

有谁能帮帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-21 01:08:12

References用于在两个实体之间创建多对一关系,并应用于“多端”。您引用了一个单独的其他实体,因此使用References方法。HasManyReferences关系的“另一端”,应用于“一端”。

来自Fluent's website

您的关系应该如何工作?它看起来像一个经典的一对多ParseRules,所以这应该是HasManyScriptType方面,就像Fluent做的那样。

也许,如果您想在这里拥有双向关系,其中ParseRule端是关系的“拥有”端,那么您应该在ScriptType.ParseRules映射覆盖中使用Inverse()

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6412728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档