开发者

How to join two tables together with columns that aren't keys (in NHibernate)?

I have one table that has an Id (PK) and another table with a bunch of information. There will be a one-to-many relationship from the first table to some data in the second table, but there's no FK's anywhere. So I want to do an inner join on table1.Id with table2.OtherId.

I've got my Model set up with an IList and in my table1 map I have:

HasMany(x => x.Properties).KeyColumn(开发者_运维问答"table2id");

but I guess since it doesn't know what to join that column with in the first table, it won't work. I know the table2 model is working correctly because I've tried it on its own and I get all the correct data. It's just this HasMany thing that's getting messed up.

I've looked at the other "related" questions here on SO but I can't see anything that works for me.


You don't have to have a FK relationship but the column specified in KeyColumn must be the primary key of table2. I don't know of a workaround.


So it turned out that I needed to have References in the Table2 mapping onto Table1. And then simply HasMany(x => x.Properties).Inverse.Cascade.None() in the Table1 Mapping sorted it out.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜