c# – 返回类型不正确,但我不明白应该是什么
我正在尝试重做此方法以仅返回相应的记录.下面的原始GetAll()返回了许多不必要的列和数据,因为正在使用EF代理.关闭EF代理会破坏应用程序中的内容,因此我尝试有选择地减少返回的数据以提高性能.
原始GetAll() public IEnumerable<OWF_ManagerRelationship> GetAll() { return context.OWF_ManagerRelationship.Where(x => x.IsActive == true).ToList(); } 我正在尝试创建的新GetAll()如下所示.这个将包含来自注释掉的Include()语句中的OWF_Onsites表的一些字段.这些将是几个日期字段和一个整数字段.这是我试图减少从此方法返回到调用方法的数据量的地方.我想从Owf_ManagerRelationship上下文返回一个DisplayName字段,从OWF_Onsites表返回另一个3(OnsiteDate,TargetDate,TargetMonth). public IEnumerable<string> GetAll() { var managers = context.OWF_ManagerRelationship .Where(m => m.IsActive.Value == true) //.Include(o => o.OWF_Onsites).Where() .Select(x => new {x.DisplayName}) .ToList(); return managers; } 上面的回归经理有红色的曲线.它说“无法将表达式类型System.Collections.Generic.List< DisplayName:string>转换为返回类型System.Collections.Generic.IEnumerable< string>”. 我明白它不能将匿名类型字符串DisplayName转换为返回类型字符串,但我真的不明白为什么.我认为它会起作用,因为DisplayName是一个字符串.一旦我在Include()语句中运行代码,我也不明白返回类型应该是什么.一旦完成,它还应该从OWF_Onsites返回两个日期字段和一个整数字段. 有人可以对这应该是什么样子有所了解吗?包含一些代码以及如何使用Include()中OWF_Onsites表中的两个日期字段(targetDate和OnsiteDate)和整数(TargetMonth)字段将非常有用. 希望我的意图是明确的,以防我尝试这样做是偏离基础的.如果我做错了,请告诉我. 解决方法
您正在尝试返回IEnumerable的匿名类型而不是IEnumerable< string>.删除选择中的新内容,它将起作用:
public IEnumerable<string> GetAll() { var managers = context.OWF_ManagerRelationship .Where(m => m.IsActive.Value == true) .Select(x => x.DisplayName) .ToList(); return managers; } 其他一些值得注意的事项: public IEnumerable<string> GetAll() { var managers = context.OWF_ManagerRelationship .Where(m => m.IsActive.Value == true) .Select(x => x.DisplayName); return managers; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |