NHibernate Mapping-by-code 一对一关系:通过 Join 获取?

NHibernate Mapping-by-code One-To-One relationship: fetch by Join?

我有一个 table (UncommittedVideoFile),它与另一个 table (VideoOrImageAsset) 具有严格的一对一关系。当我加载 UncommittedVideoFile 时,我想通过 JOIN 在同一查询中加载 VideoOrIm​​ageAsset。 (内部或左侧外部)。

显然可以在使用 xml 映射时指定按连接获取:https://ayende.com/blog/3960/nhibernate-mapping-one-to-one

如果您使用的是 Fluent NHibernate,也可以:

但是使用 MappingByCode,是否可以设置一个 Fetch 选项?我到处都看不到。

这是我目前拥有的代码。 IOneToOneMapper 接口没有 Fetch 方法。

classMapper.OneToOne(
    f => f.VideoOrImageAsset,
    oneToOneMapper =>
    {
        oneToOneMapper.Constrained(true);
        oneToOneMapper.ForeignKey("Id");
        oneToOneMapper.Lazy(LazyRelation.NoLazy);
    }
);

已知缺少按代码映射功能 GH-2139. And it's already implemented in 5.3 (not yet released, but pretty close)

现在您可以使用 https://www.myget.org/gallery/nhibernate (also check notes how to use it here)

的 5.3 预发布版本