【发布时间】:2019-08-12 19:03:45
【问题描述】:
如果没有记录为空或为空,我尝试让此表显示值 0,我正在计算相等的字符串,我的字符串是“sm_red”。
MVC LinQ .NET Framework 4.5
List<string> trae = new List<string>();
trae = db.SM_App.Where(x => x.sm_canal.ToString() == "EVERYTHING").Select(x => x.sm_categoria).Distinct().ToList();
var query = (from a in trae
join b in db.SM_App on a equals b.sm_categoria
where b.sm_canal == "EVERYGHINT" && b.sm_fecha > sDate && b.sm_fecha < fDate
group b by b.sm_categoria into g
select new
{
Categoria = g.Key,
Facebook = g.Count(x => x.sm_red == "Facebook"),
Twitter = g.Count(x => x.sm_red == "Twitter"),
Instagram = g.Count(x => x.sm_red == "Instagram")
}).Distinct().ToList();
2019 年 13 月 8 日更新
我试试这个,但是返回“Count = 0”,并且在视图中什么都不返回
var query = (from a in trae
join b in db.SM_App on a equals b.sm_categoria into grp
from c in grp.DefaultIfEmpty()
where c.sm_canal == "EVERY" && c.sm_fecha > sDate && c.sm_fecha < fDate
group c by c.sm_categoria into g
select new
{
Categoria = g.Key,
Facebook = g.Count(x => x.sm_red == "Facebook").ToString() == "" ? Convert.ToInt32(g.Key) : 0,
Twitter = g.Count(x => x.sm_red == "Twitter").ToString() == "" ? Convert.ToInt32(g.Key) : 0,
Instagram = g.Count(x => x.sm_red == "Instagram").ToString() == "" ? Convert.ToInt32(g.Key) : 0
}).Distinct().ToList();
【问题讨论】:
-
假设
g来自groupby,那么g不可能为空或null,所以当g没有符合条件的成员时,您的Count将返回零.Count已经为空的IEnumerable返回零。 -
好的,用整个上下文更新问题
-
哪个数据访问库(实体框架?)和哪个版本?
-
目前还不清楚您要达到的目标。此外,您确实显示了代码,但您没有说明它(显然)失败的原因。
-
实体框架
标签: c# linq model-view-controller