【问题标题】:Updating Fluent nHibernate causes problems with missing property更新 Fluent nHibernate 会导致缺少属性的问题
【发布时间】:2013-01-02 15:29:15
【问题描述】:

我正在尝试更新我的应用程序中的 nHibernate 版本。 我使用了 nuGet 并将 NHibernate v2.1.2.4000 更新为 v3.3.2.4000 以及流畅的 NHibernate 从 v1.1.0.685 到 v1.3.0.733

我期待一些问题,但我得到的错误很奇怪,我无法弄清楚。

在我的“多对多”约定中有这样一行:

var userDefined = instance.Relationship.Columns.UserDefined.FirstOrDefault();
if (userDefined != null)
{
  instance.Relationship.Column(userDefined.EntityType.Name + "Id");
}

问题是在更新 DLL 后“UserDefined”属性不再存在。我无法理解的是我是否需要在某个地方重新定义它,或者是否有不同的方式来访问该属性。

我的印象是“UserDefined”属性是 fluent nHibernate 的一部分。 有谁知道如何让这个工作?

非常感谢

【问题讨论】:

    标签: nhibernate fluent-nhibernate c#-3.0 updating


    【解决方案1】:

    FluentNHibernate 重构了它表示指定值的方式。

    之前只有一个值和指标来设置它们(默认、约定、显式)。现在所有三种类型都有值,并且在阅读时使用类似explicit ?? convention ?? default 的内容,因此不再需要对显式/用户定义的值进行测试。

    删除除instance.Relationship.Column(userDefined.EntityType.Name + "Id");以外的所有行

    【讨论】:

    • userDefined 不存在没有第一行是这样的: var userDefined = instance.Relationship.Columns.UserDefined.FirstOrDefault();
    • 有一个:instance.ChildType.FullName 但让我抓狂的是,我找不到任何文档说明 NHibernate 3 中“Relationship.Columns.UserDefined”发生了什么
    • 它是 FluentNHibernate 的一部分,自从 NHibernate 引入了 Mapping By Code 以来,它几乎已经死了。他设法整合了他的重构,但从那时起,文档和错误修复就变得匮乏了。请参阅github.com/jagregory/fluent-nhibernate/wiki/Getting-started中的 NH 2.1@
    猜你喜欢
    • 1970-01-01
    • 2010-11-17
    • 2010-10-29
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    相关资源
    最近更新 更多