C# 将OrderBy子句中的计算值与EF一起使用
我试图在LINQ查询中的OrderBy子句中使用计算值 我得到的错误是: Dbathmetic表达式参数必须具有数字公共类型 我的模型如下所示:C# 将OrderBy子句中的计算值与EF一起使用,c#,linq,lambda,entity-framework-5,C#,Linq,Lambda,Entity Framework 5,我试图在LINQ查询中的OrderBy子句中使用计算值 我得到的错误是: Dbathmetic表达式参数必须具有数字公共类型 我的模型如下所示: public class PostModel { public int ID { get; set; } public DateTime Created { get; set; } public string Title { get; set; } public strin
public class PostModel
{
public int ID { get; set; }
public DateTime Created { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string FilePath { get; set; }
public float Rank { get; set; }
public UserProfile Creator { get; set; }
public bool ShowPost { get; set; }
public PostModel()
{
Created = DateTime.Now;
Rank = 0;
ShowPost = false;
}
}
我试着用这个来选择帖子:
var todaysDate = DateTime.Now.AddDays(-10);
var result = _database.Posts
.Where(p => p.ShowPost == true)
.OrderBy(x => ((float)x.Rank) - (((float)(x.Created - todaysDate).TotalDays)) / 2f)
.Skip(page * StaticVariables.ResponseDataPageSize)
.Take(StaticVariables.ResponseDataPageSize)
.Select(s => new
{
id = s.ID,
rank = s.Rank,
title = s.Title,
description = s.Description
}
);
这是导致错误的顺序。我首先想到的是,我没有将所有变量强制转换为同一类型,但是添加(float)似乎没有帮助
代码的目的是使高级别的职位随着时间的推移而下降,以便显示更新的信息
有什么想法吗?在LinqToEntity中使用EntityFunction:
EntityFunctions.DiffDays(todaysDate, x.Created)
这很有效。非常感谢。这是对所有LINQ的一般限制吗,请求中没有“正常”计算?