我正在尝试使用ManyToOne()映射类
我将第一堂课定义为:
response.delimiters = ('%{', '}%')
和第二类:
public class InfoNH
{
public virtual string RowId { get; set; }
public virtual int Refcon { get; set; }
public virtual IEnumerable<BrokerNH> Brokers { get; set; }
}
然后我尝试映射这两个类:
public class BrokerNH
{
public virtual int BrokerId { get; set; }
public virtual string BrokerName { get; set; }
public virtual InfoNH Infos { get; set; }
}
和BrokerNH一样:
public InfoMapping()
{
Table("Table");
Id(x => x.RowId, c => c.Column("ROWID"));
Property(x => x.REFCON, c => c.Column("REFCON"));
Bag(x => x.Brokers, map =>
{
map.Inverse(true);
map.Cascade(Cascade.All);
map.Lazy(CollectionLazy.NoLazy);
map.Key(x => x.Column("IDENT"));
map.Fetch(CollectionFetchMode.Join);
map.BatchSize(1000);
},
action => action.OneToMany());
}
这个想法是InfoNH可能包含许多Broker,因此我尝试使用变量Refcon(这不是主键)将这两个表连接在一起。
ps:我使用ROWID是因为我的第一个表不包含主键。
但是,每次NHibernate尝试在 public BrokerMapping()
{
Table("TIERS");
Id(x => x.BrokerId, c => c.Column("IDENT"));
Property(x => x.BrokerName, c => c.Column("NAME"));
ManyToOne(x => x.TradeInfos, map =>
{
map.PropertyRef("Refcon");
map.Column("IDENT");
map.Cascade(Cascade.All);
});
}
上连接两个表时,这都不是我想要的。
预先感谢您的任何建议