我搜索了类似的问题,但找不到任何问题。我正在使用linq select查询从数据库中获取一些对象,以收集名为“ AudioBookDTO”的对象。该对象具有许多属性,这些属性在以下代码片段中显而易见。
from a in _unitOfWork.AudiobooksViewRepository.GetAll()
where a.EntityTitle.Replace(" ", "").Contains(input.Replace(" ", ""))
group a by new { a.Title, a.Identifier, a.AudioBookId, a.RecordVersion, a.Slug, a.EntityTitle } into grp
select new AudioBookDTO
{
Title = grp.Key.Title,
Identifier = grp.Key.Identifier,
AudioBookId = grp.Key.AudioBookId,
RowVersion = grp.Key.RecordVersion,
Slug = grp.Key.Slug,
HitObject =
(grp.Min(a => a.EntityType) == 2) ? grp.Key.EntityTitle + " (Author)" :
(grp.Min(a => a.EntityType) == 3) ? grp.Key.EntityTitle + " (Translator)" :
(grp.Min(a => a.EntityType) == 4) ? grp.Key.EntityTitle + " (Narrator)" :
(grp.Min(a => a.EntityType) == 5) ? grp.Key.EntityTitle + " (Genre)" :
(grp.Min(a => a.EntityType) == 6) ? grp.Key.EntityTitle + " (Publisher)" :
null,
HitObjectType = grp.Min(a => a.EntityType),
Weight = (grp.Min(a => a.EntityType) == 2) ? 100 : 90,
}).OrderBy(a => a.HitObjectType);
“输入”是我用来在数据库中搜索的关键字。问题在于对象中的所有属性都将得到很好的分配,但基于条件我要分配的“重量”除外。让我明确指出,即使我说“ Weight = 100”,最终结果也不会具有我分配的值,而是0。
另一个提示是,AudiobooksViewRepository是我在数据库中定义的视图,并且在结果中包含以下列:标题,标识符,AudiobookId,RecordVersion,Slug,EntityType,EntityTitle。
此外,我正在使用服务控制器,由于OData正在处理分页,因此查询将不会在服务中运行。因此,由于分页正在执行控制器层中的工作,因此无法执行类似ToList()的操作。 (是的,这是WebAPI)
“重量”没有任何值是什么问题? 预先感谢