QueryOver - JoinQueryOver 问题

发布于 2024-11-02 23:00:17 字数 1133 浏览 0 评论 0原文

i 如何对同一个表使用查询(联接)...示例

    if (!string.IsNullOrEmpty(ufResidencia) || 
        !string.IsNullOrEmpty(cidadeResidencia))
    {
        EnderecoProspect endPros = null;
        TipoEndereco tipoEnd = null;
        query
            .JoinQueryOver<EnderecoProspect>(x => x.Enderecos,()=> endPros)
                .And(()=> endPros.Uf ==ufResidencia)
                    .JoinQueryOver<TipoEndereco>(x => x.TipoEndereco,()=> tipoEnd)
                        .And(()=> tipoEnd.Descricao != "Fazenda");
    }

    if (!string.IsNullOrEmpty(ufFazenda) ||
        !string.IsNullOrEmpty(cidadeFazenda))
    {
        EnderecoProspect endPros1 = null;
        TipoEndereco tipoEnd1 = null;
        query
            .JoinQueryOver<EnderecoProspect>(x => x.Enderecos,()=> endPros1)
                .And(()=> endPros1.Uf ==ufFazenda)
                    .JoinQueryOver<TipoEndereco>(x => x.TipoEndereco,()=> tipoEnd1)
                        .And(()=> tipoEnd1.Descricao == "Fazenda");

    }

当我尝试运行时,我收到路径重复的消息。我使用的别名正确吗?什么问题?有理想吗?例外是“重复的关联路径”

i How to use queryover (Join) for same table...example

    if (!string.IsNullOrEmpty(ufResidencia) || 
        !string.IsNullOrEmpty(cidadeResidencia))
    {
        EnderecoProspect endPros = null;
        TipoEndereco tipoEnd = null;
        query
            .JoinQueryOver<EnderecoProspect>(x => x.Enderecos,()=> endPros)
                .And(()=> endPros.Uf ==ufResidencia)
                    .JoinQueryOver<TipoEndereco>(x => x.TipoEndereco,()=> tipoEnd)
                        .And(()=> tipoEnd.Descricao != "Fazenda");
    }

    if (!string.IsNullOrEmpty(ufFazenda) ||
        !string.IsNullOrEmpty(cidadeFazenda))
    {
        EnderecoProspect endPros1 = null;
        TipoEndereco tipoEnd1 = null;
        query
            .JoinQueryOver<EnderecoProspect>(x => x.Enderecos,()=> endPros1)
                .And(()=> endPros1.Uf ==ufFazenda)
                    .JoinQueryOver<TipoEndereco>(x => x.TipoEndereco,()=> tipoEnd1)
                        .And(()=> tipoEnd1.Descricao == "Fazenda");

    }

When I try to run I get the message that the path is duplicated. Im using alias correct? what problem? havy ideal? exception is "duplicate association path"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

草莓酥 2024-11-09 23:00:17

我设法用 LINQ to NHibernate 解决了问题...这里有一个适合所有人的例子...

  var q =
            from c in Context.Query<Prospect>()
            join o in Context.Query<EnderecoProspect>() on c.Identificacao equals                   o.Prospect.Identificacao
            join e in Context.Query<TipoEndereco>() on o.TipoEndereco.Identificacao equals e.Identificacao
            join a in Context.Query<EnderecoProspect>() on c.Identificacao equals a.Prospect.Identificacao
            join b in Context.Query<TipoEndereco>() on a.TipoEndereco.Identificacao equals b.Identificacao
            where (
                    (
                        (o.Uf == ufFazenda || ufFazenda == null) &&
                        (o.Cidade == cidadeFazenda || cidadeFazenda == null)
                    ) && e.Descricao == "Fazenda"
                  )
                  &&
                  (
                    (
                        (a.Uf == ufResidencia || ufResidencia == null) &&
                        (a.Cidade == cidadeResidencia || cidadeResidencia == null)
                    ) && b.Descricao != "Fazenda"
                  )

现在我可以多睡一会儿直到...ehehehe...见到你

I managed to solve with LINQ to NHibernate ... there is the example for all ...

  var q =
            from c in Context.Query<Prospect>()
            join o in Context.Query<EnderecoProspect>() on c.Identificacao equals                   o.Prospect.Identificacao
            join e in Context.Query<TipoEndereco>() on o.TipoEndereco.Identificacao equals e.Identificacao
            join a in Context.Query<EnderecoProspect>() on c.Identificacao equals a.Prospect.Identificacao
            join b in Context.Query<TipoEndereco>() on a.TipoEndereco.Identificacao equals b.Identificacao
            where (
                    (
                        (o.Uf == ufFazenda || ufFazenda == null) &&
                        (o.Cidade == cidadeFazenda || cidadeFazenda == null)
                    ) && e.Descricao == "Fazenda"
                  )
                  &&
                  (
                    (
                        (a.Uf == ufResidencia || ufResidencia == null) &&
                        (a.Cidade == cidadeResidencia || cidadeResidencia == null)
                    ) && b.Descricao != "Fazenda"
                  )

Now I can sleep a little more until ...ehehehe...see you

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文