如何解决此LINQ查询中不支持OUTER APPLY的问题

时间:2010-11-05 15:10:34

标签: c# .net oracle .net-4.0 linq-to-entities

我正在使用带有dotConnect for Oracle的LINQ to Entities,并且在这个非常简单的LINQ查询中我得到一个OUTER APPLY不支持异常:

from intervenant in Intervenants
select new
{
    intervenant.Code,
    intervenant.Nom,
    Municipalite = intervenant.Adresses.Any() ? intervenant.Adresses.FirstOrDefault().Municipalite : string.Empty,
    CodePostal = intervenant.Adresses.Any() ? intervenant.Adresses.FirstOrDefault().CodePostal : string.Empty
}

我应该如何构建查询以解决此问题?

非常感谢你的帮助!

更新

我已经更新了我的devArt dotConnect for Oracle提供程序,它解决了这个问题。对于此LINQ查询,它不再执行OUTER APPLY。

但是我有另一个问题。此linq查询服务于Telerik Grid,并且外部应用问题又回来了。不确定Grid内部做了什么,但他正在做一些提供商不支持的事情。

1 个答案:

答案 0 :(得分:1)

当你这样做时会发生什么?

from intervenant in Intervenants
select new
{
    intervenant.Code,
    intervenant.Nom,
    Municipalite = intervenant.Adresses.FirstOrDefault().Municipalite,
    CodePostal = intervenant.Adresses.FirstOrDefault().CodePostal
}

然后你可以将它嵌套在一个LINQ表达式中,该表达式将空值转换为空字符串吗?