【发布时间】:2020-10-06 17:29:53
【问题描述】:
一个简单的查询:
(from user in _db.Users
select new UserObj
{
DisplayName = user.LastName + " " + user.FirstName
}).OrderBy(o => o.DisplayName)
.Where(w => w.EndDate == null)
.ToList();
模型类是:
public class UserObj
{
public string FirstName {get; set;}
public string LastName {get; set;}
public string DisplayName {get; set;}
public DateTime? EndDate {get; set;}
}
但是我收到了警告
警告:Microsoft.EntityFrameworkCore.Query[20500] LINQ 表达式 'where(new UserObj() {DisplayName = (([user].LastName + " " + [user.FirstName)}.EndDate == null)' 无法翻译,将在本地计算。
【问题讨论】:
-
字段
EndDate从哪里来的?它是UserObj的一部分吗?它是如何初始化的? (你知道w的类型吗?) -
是的,它是
UseObj的一个属性。我已经在帖子里写了。它没有被初始化。 -
那么它将永远是
null而Where什么都不做? -
不,我误解了你的评论。在数据库中,一些行有值,但其他行是空的。它已初始化。
-
在哪里初始化?您正在使用
new UserObj创建它,而不是将其设置为任何值。
标签: c# linq entity-framework-core