首页 > 解决方案 > 为什么 IQueryable 在包含函数“false”中一直显示,即使这应该是真的

问题描述

我的 Iqueryable cuz 有问题。当我得到一个小时数的项目时(控制台日志中的数组显示 Array [“08:00”、“08:00”、“08:30”] 并且当我输入一些代码时

var test = visits.AsQueryable().Contains("08:30");

像这样然后每次都向我展示错误的任何解决方案?

访问列表如下

var visits = _context.Visits.Where(a => a.Date.Date.ToString() == date).Where(a=>a.Doctor.Id == idDoc).Select(a=>a.Date.ToShortTimeString());

先感谢您

标签: asp.netasp.net-mvcasp.net-corecollectionsiqueryable

解决方案


据我所知,ToShortTimeString 方法返回的字符串是文化敏感的。

它反映了当前区域性的 DateTimeFormatInfo.ShortTimePattern 属性定义的模式。

例如,对于 en-US 文化,标准的短时间模式是“h:mm tt”;对于 de-DE 文化,它是“HH:mm”;对于 ja-JP 文化,它是“H:mm”。

请注意,它的值可能因 .NET 实现及其版本、操作系统及其版本以及用户自定义而异。

如果您的服务器是 en-US 文化,则返回值将是8:30 AMformat。所以我建议你可以尝试使用var test = visits.AsQueryable().Contains("8:30");而不是visits.AsQueryable().Contains("08:30");.

所有结果都应基于您的文化。


推荐阅读