NHibernate Mapping-by-code 一对一关系:通过 Join 获取?
NHibernate Mapping-by-code One-To-One relationship: fetch by Join?
我有一个 table (UncommittedVideoFile
),它与另一个 table (VideoOrImageAsset
) 具有严格的一对一关系。当我加载 UncommittedVideoFile 时,我想通过 JOIN 在同一查询中加载 VideoOrImageAsset。 (内部或左侧外部)。
显然可以在使用 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 预发布版本
我有一个 table (UncommittedVideoFile
),它与另一个 table (VideoOrImageAsset
) 具有严格的一对一关系。当我加载 UncommittedVideoFile 时,我想通过 JOIN 在同一查询中加载 VideoOrImageAsset。 (内部或左侧外部)。
显然可以在使用 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 预发布版本