Fluent nhibernate 多对一公式

Fluent nhibernate 多对一公式,fluent-nhibernate,fluent-nhibernate-mapping,Fluent Nhibernate,Fluent Nhibernate Mapping,我有一个NHibernate映射文件要转换为fluent。我被一个特殊的案例困住了: <many-to-one name="LastChildRevision" update="false" not-found="ignore" access="readonly" fetch="join"> <formula>(SELECT TOP(1) CHILD_REVISION.CHILD_REVISION_ID FROM CHILD_REVISION WHERE CHIL

我有一个NHibernate映射文件要转换为fluent。我被一个特殊的案例困住了:

<many-to-one name="LastChildRevision" update="false" not-found="ignore" access="readonly" fetch="join">
    <formula>(SELECT TOP(1) CHILD_REVISION.CHILD_REVISION_ID FROM CHILD_REVISION WHERE CHILD_REVISION.PARENT_ID = PARENT_ID ORDER BY CHILD_REVISION.REVISION_NUMBER DESC)</formula>
</many-to-one>
我明白了:

Invalid column name 'LastChildRevision_id'.

谢谢

您可能会遇到一个bug。尝试先清除列

References(x => x.LastChildRevision)
    .Columns.Clear()
    .Formula("(SELEC ...

我知道我很久以前问过这个问题,但我决定重温一下Fluent NHibernate,下面是我的想法:

References(x => x.LastChildRevision)
    .Column("PARENT_ID")
    .Not.Insert()
    .Not.Update()
    .Access.ReadOnly()
    .NotFound.Ignore()
    .Cascade.None()
    .Formula("(SELECT TOP(1) CHILD_REVISION.CHILD_REVISION_ID FROM CHILD_REVISION WHERE CHILD_REVISION.PARENT_ID = PARENT_ID ORDER BY CHILD_REVISION.REVISION_NUMBER DESC)");
References(x => x.LastChildRevision)
    .Columns.Clear()
    .Formula("(SELEC ...
References(x => x.LastChildRevision)
    .Column("PARENT_ID")
    .Not.Insert()
    .Not.Update()
    .Access.ReadOnly()
    .NotFound.Ignore()
    .Cascade.None()
    .Formula("(SELECT TOP(1) CHILD_REVISION.CHILD_REVISION_ID FROM CHILD_REVISION WHERE CHILD_REVISION.PARENT_ID = PARENT_ID ORDER BY CHILD_REVISION.REVISION_NUMBER DESC)");