【问题标题】:Overriding Fluent NHibernate Automappings覆盖 Fluent NHibernate 自动映射
【发布时间】:2009-09-01 14:57:46
【问题描述】:

这是一个 Fluent NHibernate 新手问题,请耐心等待。

我有一组类,我正在对其应用自动映射功能。

但我需要用唯一约束标记其中一种技术的属性。

在 Fluent Wiki 中,它说

有时需要 对特定实体的细微更改, 不希望影响任何事情 别的;你可以用 with 做到这一点 覆盖方法。

.Override(map => {
map.HasMany(x => x.Products) .Cascade.All(); });

但我不知道要将 .Override 方法应用于哪个对象。

现在,我有

AutoPersistenceModel returnModel = AutoMap.AssemblyOf()

但是 AutoPersistenceModel 对象没有 Override 方法。

谁能给我一些简单的示例代码来引导我完成这个,或者指向一些包含示例的链接?

谢谢。

【问题讨论】:

    标签: fluent-nhibernate automapping


    【解决方案1】:

    它在 1.0 RTM 中确实有一个 Override 方法。你可以这样使用它:

    AutoMap.AssemblyOf<Person>().Override<Shelf>(map =>
    {
        map.HasMany(x => x.Products).Cascade.All();
    });
    

    【讨论】:

    • 嗯。我引用的 FluentNHibernate dll 的产品版本为 1.0.0.0,但 Intellisense 肯定没有显示 Override 方法。如果我无论如何都强制它并尝试构建它,我会收到错误消息“...AutoPersistenceModel 不包含覆盖的定义...”
    • 您需要仔细检查您是否拥有正确的程序集版本。我是从fluentnhibernate.org/downloads/releases/… 下载的,AutoPersistenceModel 类肯定有 Override 方法。它也有 Version=1.0.0.593 而不是 1.0.0.0
    • 我很抱歉。你是对的。我有 1.0RC 版本,而不是 1.0RTM。感谢您的帮助。
    猜你喜欢
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    相关资源
    最近更新 更多