Jon*_*ard 2 c# nhibernate fluent-nhibernate
我正在使用Fluent(1.1.0)NHibernate(2.1.2),并且我有一个(子)子类,其中包含对另一个类的多对多引用:
(子)子类 - <交叉表> - 其他类
要么
FloorplanObject(基类)
几何(子类)
展位(SubSubclass) - <ExhibitorStand> - 参展商
基类:
public class FloorplanObject
{
public int Id { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
基类映射:
class FloorplanObjectMap : ClassMap<FloorplanObject>
{
public FloorplanObjectMap()
{
Id(x => x.Id);
Map(x => x.Name);
}
}
Run Code Online (Sandbox Code Playgroud)
子类:
public class Geometry : FloorplanObject
{
public virtual List<float> Positions { get; set; }
public Geometry()
{
Positions = new List<float>();
}
}
Run Code Online (Sandbox Code Playgroud)
子类映射:
public class GeometryMap : SubclassMap<Geometry>
{
public GeometryMap()
{
Map(x => x.Positions);
}
}
Run Code Online (Sandbox Code Playgroud)
(子)子类:
public class Stand : Geometry
{
public virtual string StandNumber { get; set; }
public virtual List<Exhibitor> HasExhibitors { get; set; }
public Stand()
{
HasExhibitors = new List<Exhibitor>();
}
}
Run Code Online (Sandbox Code Playgroud)
(子)子类映射:
public class StandMap : SubclassMap<Stand>
{
public StandMap()
{
Map(x => x.StandNumber);
HasManyToMany(x => x.HasExhibitors)
.Cascade.All()
.Inverse()
.Table("ExhibitorStand");
}
}
Run Code Online (Sandbox Code Playgroud)
其他类:
public class Exhibitor
{
public virtual int Id { get; private set; }
public virtual string Name { get; set; }
public virtual List<Stand> OnStands { get; set; }
public Exhibitor()
{
OnStands = new List<Stand>();
}
}
Run Code Online (Sandbox Code Playgroud)
其他类映射:
public class ExhibitorMap : ClassMap<Exhibitor>
{
public ExhibitorMap()
{
Id(x => x.Id);
Map(x => x.Name);
HasManyToMany(x => x.OnStands)
.Cascade.All()
.Table("ExhibitorStand");
}
}
Run Code Online (Sandbox Code Playgroud)
在使用上述映射初始化ISession时,我收到以下错误:
NHibernate.MappingException:表ExhibitorStand中的关联引用了一个未映射的类:Stand
有没有人知道我在这里做错了什么?
Jon*_*ard 10
噢亲爱的.什么假人:
class FloorplanObjectMap : ClassMap<FloorplanObject>
{
public FloorplanObjectMap()
{
Id(x => x.Id);
Map(x => x.Name);
}
}
Run Code Online (Sandbox Code Playgroud)
应该:
public class FloorplanObjectMap : ClassMap<FloorplanObject>
{
public FloorplanObjectMap()
{
Id(x => x.Id);
Map(x => x.Name);
}
}
Run Code Online (Sandbox Code Playgroud)
如果你浪费时间阅读这篇文章,请道歉.第一个......:/
| 归档时间: |
|
| 查看次数: |
2815 次 |
| 最近记录: |