Sharp Architecture和Fluent NHibernate 1.1

时间:2010-07-07 09:11:21

标签: c# nhibernate fluent s#arp-architecture

我是这个小组的新手,如果已经得到回答,请道歉 (我好好看看)。我正在研究尖锐的架构 我即将开始的一个项目。

我正在尝试Northwind示例,并想测试一个 自我参照关系,但发现了Fluent NHibernate 1.1 需要(见 http://support.fluentnhibernate.org/discussions/help/127-parentchild-..)。

所以我用流畅的1.1版重新编译并遇到了几个 Employee类的问题。第一个错误是沿着这条线 FullName需要获得。我用mapping.IgnoreProperty(x => x.FullName);在EmployeeMap类中。

我未能解决的下一个问题:列名“Id”无效。一世 从测试输出可以看出NHibernate试图做“选择” top 0 this_.Id“等但是EmployeeMap类将它映射到 EmployeeID,所以期望看到“SELECT top 0 this_.EmployeeID”

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

有什么想法吗?

谢谢...... Rich

3 个答案:

答案 0 :(得分:1)

仅供记录:我遇到了同样的问题,而我遇到的问题是我在Employee类中添加了额外的Id属性。

答案 1 :(得分:0)

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

问候

答案 2 :(得分: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");

    }

}