我是这个小组的新手,如果已经得到回答,请道歉 (我好好看看)。我正在研究尖锐的架构 我即将开始的一个项目。
我正在尝试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
答案 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");
}
}