C# - Left Outer Join lambda expression error

rafilho

I have the following tables:

Table1
{
    Code   //string
    Desc   //string
}

Table2
{
    Code   //string
    Value  //decimal?
}

I need to Left Join the tables and for each Table2 Code/Value missing I want to show Code = Table1.Code, Desc = Table1.Desc and Value = null or blank.

I tryied the following lambda expression:

      var result = Table1.GroupJoin(
                  Table2,
                  x => x.Code,
                  y => y.Code,
                  (x, y) => g
                      .Select(c => new { x.Code, x.Desc, Value = y.Value })
                      .DefaultIfEmpty(new { x.Code, x.Desc, Value = null }))
                      .SelectMany(g => g);

and got these errors:
The type arguments for method 'System.Linq.Enumerable.DefaultIfEmpty(System.Collections.Generic.IEnumerable, TSource)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

Cannot assign to anonymous type property

So, I changed ...DefaultIfEmpty... Value = 0 }...

并得到以下错误:'System.Collections.Generic.IEnumerable'不包含'DefaultIfEmpty'的定义,最佳扩展方法重载'System.Linq.Queryable.DefaultIfEmpty(System.Linq.IQueryable,TSource)'有一些无效论点

实例参数:无法从“ System.Collections.Generic.IEnumerable”转换为“ System.Linq.IQueryable”

有解决错误的想法吗?

乔恩·斯基特

您只需要null在匿名类型初始值设定项中指定值的类型:

.DefaultIfEmpty(new { x.Code, x.Desc, Value = (decimal?) null }))

使用0时,您正在创建一个单独的匿名类型,该类型的Value属性类型为int,而不是decimal?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

grails hql left outer join

来自分类Dev

MySQL "Left Outer Join" Issue

来自分类Dev

SQL JOIN和LEFT OUTER JOIN

来自分类Dev

Mysql的INNER JOIN后LEFT OUTER JOIN

来自分类Dev

如何编写RIGHT OUTER JOIN和LEFT OUTER JOIN的组合

来自分类Dev

返回LEFT OUTER JOIN的相反结果

来自分类Dev

LEFT OUTER JOIN仅最新记录

来自分类Dev

使用WHERE子句的SQL LEFT OUTER JOIN

来自分类Dev

MySQL LEFT OUTER JOIN不过滤记录

来自分类Dev

使用子查询语法的LEFT OUTER JOIN

来自分类Dev

Select query with left outer join and sum with group by

来自分类Dev

SQL COUNT()函数和LEFT OUTER JOIN

来自分类Dev

在PostgreSQL中使用LEFT OUTER JOIN删除

来自分类Dev

MySQL LEFT OUTER JOIN不过滤记录

来自分类Dev

SQLITE中意外的LEFT OUTER JOIN行为

来自分类Dev

LEFT OUTER JOIN返回特定数据

来自分类Dev

使用LEFT OUTER JOIN建立查询结果

来自分类Dev

Mysql Left OUTER JOIN与子查询(wordpress)

来自分类Dev

LEFT OUTER JOIN不返回NULL值

来自分类Dev

LEFT OUTER JOIN的语法错误

来自分类Dev

Yii:优化LEFT OUTER JOIN到INNER JOIN

来自分类Dev

为什么LEFT OUTER JOIN无法正常工作?

来自分类Dev

通过MAX挑战LEFT OUTER JOIN查询分组

来自分类Dev

具有多个值的数组列上的LEFT OUTER JOIN

来自分类Dev

LEFT OUTER JOIN获取max()并包含NULL值

来自分类Dev

需要帮助修复此LEFT OUTER JOIN的语法

来自分类Dev

使用COALESCE和LEFT OUTER JOIN的SQL查询

来自分类Dev

How can A left outer join B return more rows than are in A?

来自分类Dev

PostgreSQL中相当于LEFT OUTER JOIN的'WHERE'语法