无法在C#

时间:2019-01-14 09:02:44

标签: c# sql-server linq-to-entities

我搜索了类似的问题,但找不到任何问题。我正在使用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)

“重量”没有任何值是什么问题? 预先感谢

0 个答案:

没有答案