1

我是这个小组的新手,如果已经回答了这个问题,我深表歉意(我已经看过了)。我正在研究一个我即将开始的项目的清晰架构。

我正在尝试使用 Northwind 示例,并想测试自引用关系,但发现需要 Fluent NHibernate 1.1(请参阅 http://support.fluentnhibernate.org/discussions/help/127-parentchild-..)。

所以我用 fluent 的 1.1 版重新编译并遇到了 Employee 类的几个问题。第一个错误类似于 FullName 需要获取。我用 mapping.IgnoreProperty(x => x.FullName); 解决了这个问题 在 EmployeeMap 类中。

我还没有设法解决的下一个问题:列名“Id”无效。我可以从测试输出中看到 NHibernate 正在尝试执行“SELECT top 0 this_.Id”等。但是 EmployeeMap 类将其映射到 EmployeeID,因此希望看到“SELECT top 0 this_.EmployeeID”

    mapping.Id(x => x.Id, "EmployeeID")
            .UnsavedValue(0)
            .GeneratedBy.Identity();

有任何想法吗?

谢谢...丰富

4

3 回答 3

1

仅作记录:我遇到了同样的问题,对我来说问题是我在 Employee 类中添加了一个额外的 Id 属性。

于 2010-10-05T20:17:46.660 回答
0

我对自己的演示项目以及 Northwind 项目进行了类似的更改,并且没有出现问题。您是否使用新的 FluentNHibernate.dll 重新编译了 SharpArch.dll?

问候

于 2010-07-09T11:40:21.987 回答
0

你是从 ClassMap<> 派生你的类映射吗?

我没有使用过 S#,但我们的 FnH1.1 映射如下所示:

public class EntityMap : ClassMap<Entity>
{

    public EntityMap ()
    {

        // Single table
        Table("EntityTable");

        // ID
        Id(x => x.Id, "EntityId")
            .GeneratedBy
            .HiLo("NHibernateHilo", "HighId", "1", "EntityId=1");

        // References
        References(x => x.Object, "ReferenceFieldId").Cascade.SaveUpdate();

        // Properties
        Map(x => x.PropertyName, "FieldName");

    }

}
于 2010-07-22T10:36:53.953 回答