我有两个项目A和B,它们具有单向一对一的关系。 (A有一个B)
在数据库中,这些由ATable和BTable表示,它们由ABTable链接在一起。 (从数据库设置看,它存在多对多的关系,但没有,出于规范化的原因,这是以这种方式完成的。)
问题是由于这个设置,我只能让NHibernate将其映射为实体之间的多对多关系。有没有让实体有一对一的关系?
我能想到的最好的就是让它有多对多的关系,然后在A实体上有两个属性,一个返回B的List,它将满足映射,第二个非映射属性,它将从列表中获取第一个B,以满足我的应用程序。 - 但这似乎并不合适。
答案 0 :(得分:1)
你确定你的意思是一对一吗?当他们really mean many-to-one's时,我有这么多人要求一对一。
无论如何,如果不改变你的架构,最简单的就是你的建议;但是,为了使它更清洁,您可以将集合设置为私有,因此您只展示了获取第一个项目的两个属性。您可以在Fluent NHibernate中看到various methods,以便在wiki上映射私有属性。
答案 1 :(得分:0)
您可以尝试以各种方式将join-table
与one-to-one
映射相结合。 join-table
映射允许将一个类保留在多个具有一对一关系的表中。