如何使用Fluent NHibernate映射可选的一对一关系?

时间:2009-12-22 08:53:25

标签: nhibernate fluent-nhibernate nhibernate-mapping

我有两个实体,一个叫做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的自动持久性模型,我认为我必须添加一个覆盖才能使其工作。我的问题是,我如何映射这种关系?我的架构在这种情况下是否正确?如果需要,我可以更改架构。

1 个答案:

答案 0 :(得分:2)

您需要阅读以下内容:

除非它们不可为空,否则无法进行一对一延迟加载,或者将它们映射为多对一,其中包含一个项目