我们最近升级到使用ef core 2.1.8,现在我们的某些查询失败了。
诸如where子句之类的简单操作使ef在本地对其求值。
我有一个语言表,带有一个name列,我想选择name不为null的所有内容,但是这两种方法都不起作用:
SELECT cmg, effdate, LEAD(DATEADD(DAY, -1, effdate),1, getdate()) OVER (PARTITION BY cmg ORDER BY effdate ASC) as enddate
FROM testcmg
ORDER BY cmg, effdate DESC
两个都在本地评估。名称是一个简单的字符串/ nvarchar列。
编辑:
语言是部分类,如下所示:
var searchQuery = from q in context.Language
where (q.Name != null) select q;
var searchQuery = context.Language.Where(x => x.Name != null);
具有以下配置:
public partial class Language
{
public Language()
{
Segmentation = new HashSet<Segmentation>();
SystemTranslation = new HashSet<SystemTranslation>();
}
public int Id { get; set; }
[Required]
[MaxLength(255)]
public string Culture { get; set; }
public ICollection<Segmentation> Segmentation { get; set; }
public ICollection<SystemTranslation> SystemTranslation { get; set; }
}
public partial class Language : IIdentifiable<int>, ISearchable
{
public string Name => CultureInfo.GetCultureInfo(Culture).DisplayName;
}
答案 0 :(得分:0)
事实证明,我正在尝试查询计算所得的属性,这当然意味着ef无法在服务器端使用它,因为不存在该名称的列。