Linq查询日期错误。 [英] Linq query date error.
问题描述
我目前在以下where子句代码中的date属性上收到一个编译错误:
错误:
string ' 不包含' UploadDate ' 的定义,并且没有扩展名方法' UploadDate ' 接受类型' string ' (您是否缺少using指令或程序集引用?)
public HttpResponseMessage获取(日期时间?日期)
{
如果(User.IsInRole( admin))
{
// IEnumerable< data_qy> data_queries;
DateTime昨天= DateTime.Today.AddBusinessDays(-4);
var query =( from c in db.data_qy
其中 c.UploadDate ==昨天&&
c.Cover == perst
选择(c .Name))。OrderByDescending(a = > a。 UploadDate )。Distinct();
var data = query.ToList();
if (!data.Any())
{
var message = string .Format( 没有找到数据);
return Request.CreateErrorResponse(HttpStatusCode.NotFound,message);
}
我正在尝试查询数据,其中name属性仅与where子句过滤器一起显示。
任何指南都非常感谢。
谢谢
var 查询=( from c in db.data_qy
其中 c.UploadDate ==昨天&& c.Cover == perst
选择(c.Name))。OrderByDescending(a = > a.UploadDate ).Distinct();
在这里,您选择c.Name
因此你的a
不再是data_qy
类型,它变成字符串
。
试试这个:
var query =( from c in db.data_qy
其中 c.UploadDate ==昨天&& c.Cover == perst
选择(c))。OrderByDescending(a = > a.UploadDate) .Distinct();
即不选择c.Name
,选择c
,它应该可以工作。
编辑:
另外,我发现你只需要不同的名称
s,所以你可以得到它们:
var query =( from c in db.data_qy
其中 c.UploadDate ==昨天&& c.Cover == perst
选择(c))。OrderByDescending(a = > a.UploadDate)
。选择(a = > a.Name).Distinct();
因此您的'UploadDate'属性为null-able,你必须使用 c.UploadDate.Value 。
var query =(来自 c db.data_qy
其中 c.UploadDate.Value ==昨天&&
c.Cover == perst
选择(c))。OrderByDescending(a = > a.UploadDate.Value).Distinct( );
I am currently getting a an compiling error on the date property in the where clause code below:
error:
string' does not contain a definition for 'UploadDate' and no extension method 'UploadDate' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?)
public HttpResponseMessage Get(DateTime? date)
{
if (User.IsInRole("admin"))
{
//IEnumerable<data_qy> data_queries;
DateTime yesterday = DateTime.Today.AddBusinessDays(-4);
var query = (from c in db.data_qy
where c.UploadDate == yesterday &&
c.Cover == "prest"
select (c.Name)).OrderByDescending(a => a.UploadDate).Distinct();
var data = query.ToList();
if (!data.Any())
{
var message = string.Format("No data found");
return Request.CreateErrorResponse(HttpStatusCode.NotFound, message);
}
I am trying to query data, where the name property is only displayed distinctly with the where clause filters.
Any guide would be very much appreciated.
Thanks
var query = (from c in db.data_qy where c.UploadDate == yesterday && c.Cover == "prest" select (c.Name)).OrderByDescending(a => a.UploadDate).Distinct();
Here, you are selectingc.Name
and hence youra
is no longer of typedata_qy
, it becomes astring
.
Try this:
var query = (from c in db.data_qy where c.UploadDate == yesterday && c.Cover == "prest" select (c)).OrderByDescending(a => a.UploadDate).Distinct();
i.e. instead of selectingc.Name
, selectc
, it should work.
EDIT:
Also, I see that you need only distinctName
s, so you can get them as:
var query = (from c in db.data_qy where c.UploadDate == yesterday && c.Cover == "prest" select (c)).OrderByDescending(a => a.UploadDate) .Select(a => a.Name).Distinct();
Hence your 'UploadDate' property is null-able, you have to use c.UploadDate.Value.
var query = (from c in db.data_qy where c.UploadDate.Value == yesterday && c.Cover == "prest" select (c)).OrderByDescending(a => a.UploadDate.Value).Distinct();
这篇关于Linq查询日期错误。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!