我有两个实体,一个叫做Site,另一个叫做Assignment。网站可能有也可能没有相关的分配。分配仅与一个站点相关联。就C#而言,Site具有Assignment类型的属性,该属性可以包含空引用。
我在数据库中有两个相同名称的表。 Assignment表的PK也是它返回Site表的FK(而不是具有指向Assignment的可空FK的Site)。 SQL(为简洁省略了字段)如下
CREATE TABLE Site(
SiteId INT NOT NULL CONSTRAINT PK_Site PRIMARY KEY)
CREATE TABLE Assignment(
AssignmentId INT NOT NULL CONSTRAINT PK_Assignment PRIMARY KEY,
CONSTRAINT FK_Assignment_Site FOREIGN KEY (AssignmentId) REFERENCES Site (SiteId))
我正在使用Fluent NHibernate的自动持久性模型,我认为我必须添加一个覆盖才能使其工作。我的问题是,我如何映射这种关系?我的架构在这种情况下是否正确?如果需要,我可以更改架构。
答案 0 :(得分:2)
您需要阅读以下内容:
除非它们不可为空,否则无法进行一对一延迟加载,或者将它们映射为多对一,其中包含一个项目