流利的Nhibernate:自指多对多
使用此类和映射:流利的Nhibernate:自指多对多,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,使用此类和映射: Public class Something { public int Id; public IList<Something> Similarthings { get; set; } } public class SomtehingMapping { public SomtehingMapping() { Map(x => x.Id); HasManyTo
Public class Something
{
public int Id;
public IList<Something> Similarthings { get; set; }
}
public class SomtehingMapping
{
public SomtehingMapping()
{
Map(x => x.Id);
HasManyToMany(x => x.Similarthings )
.Table("SomethingsToSimilarthings")
.ParentKeyColumn("SomethingA_Id")
.ChildKeyColumn("SomethingB_Id")
.Cascade.All();
}
}
有没有办法定义此映射,以便只使用一个数据库行来表示双向关系?您是否尝试过像这样将反向映射属性设置为真
public class SomtehingMapping
{
public SomtehingMapping()
{
Map(x => x.Id);
HasManyToMany(x => x.Similarthings )
.Inverse()
.Table("SomethingsToSimilarthings")
.ParentKeyColumn("SomethingA_Id")
.ChildKeyColumn("SomethingB_Id")
.Cascade.All();
}
}
另一种方法是明确定义关联的另一端,并将其标记为
inverse=“true”
尚未尝试过。很难想象在这种情况下,Inverse=true意味着什么。我试试看,然后回来。
public class SomtehingMapping
{
public SomtehingMapping()
{
Map(x => x.Id);
HasManyToMany(x => x.Similarthings )
.Inverse()
.Table("SomethingsToSimilarthings")
.ParentKeyColumn("SomethingA_Id")
.ChildKeyColumn("SomethingB_Id")
.Cascade.All();
}
}