流畅的nhibernate连接指定连接标准

时间:2012-01-02 15:06:54

标签: c# sql nhibernate join

我有以下sql:

select a.a, b.b, c.c
from apple a
join burger b on a.b = b.b
left outer join charlie c on a.c = c.c
where c.x = 'kke';

要映射它,我尝试了以下流畅的nhibernate映射:

    public entityMap()
    {
        Table("apple");
        Id(x => x.a, "a").GeneratedBy.TriggerIdentity();

        Join("burger", m =>
        {
            m.Inverse();
            m.Fetch.Join();
            m.KeyColumn("b");


        });
        Join("charlie", m =>
                                        {
            m.Inverse();
            m.Fetch.Join();
            m.KeyColumn("c");
        });
        Where("this_1_.x = 'kke'");

    }

导致以下sql:

select a.a, b.b, c.c
from apple a
join burger b on a.a = b.b
left outer join charlie c on a.a = c.c
where c.x = 'kke';

如你所见,连接是a.a = bb和a.a = c.c,当我希望它们是a.c = c.c和a.b = b.b时。

如何在没有引用的情况下实现此目标(我只想要所有三个表中的一个实体)。

1 个答案:

答案 0 :(得分:1)

这是不可能的。

我不认为NHibernate是您正在使用的那种以数据库为中心的方法的正确工具。