流量映射错误,外键不正确

时间:2012-10-09 12:37:40

标签: nhibernate fluent-nhibernate fluent-nhibernate-mapping

我的流利映射是:

        HasOne(x => x.User).ForeignKey("fOM_User_Id").Cascade.None();

我的课程是:

public class OrganizationMember
{
    public virtual int MemberId
    {
        get;
        set;
    }

    public virtual int OrganizationId
    {
        get;
        set;
    }

    public virtual int UserId
    {
        get;
        set;
    }

    public  virtual User User { get; set; }

    public virtual string Permissions
    {
        get;
        set;
    }

    public virtual System.DateTime DateAdded
    {
        get;
        set;
    }
}

我运行查询:

        var assignableusers = _session.Query<OrganizationMember>().Where(x => x.OrganizationId == CurrentProject.OwnerID)
            .Select(x => x.User.Login);

生成:

select user1_.fU_Login as col_0_0_ from tOrganization_Members organizati0_ left outer join tUsers user1_ on **organizati0_.fOM_Id**=user1_.fU_UserID where organizati0_.fOM_Organization_Id=7

但应该是: select user1_.fU_Login as col_0_0_ from tOrganization_Members organizati0_ left outer join tUsers user1_ on **organizati0_.fOM_User_Id** = user1_.fU_UserID where organizati0_.fOM_Organization_Id = 7

如何在映射中修复此问题? 从 organizati0_.fOM_Id organizati0_.fOM_User_Id

1 个答案:

答案 0 :(得分:0)

我不认为你们的关系是真正的一对一。

http://www.jagregory.com/writings/i-think-you-mean-a-many-to-one-sir/

您应该使用References(多对一)。

References(x => x.User).Cascade.None();