【发布时间】:2019-04-04 08:27:57
【问题描述】:
我想问一下为什么要在客户端评估这样的查询:
_context
.Items
.Include(x => x.Status)
.Include(x => x.Orders)
.ThenInclude(x => x.User)
.Include(x => x.Orders)
.ThenInclude(x => x.OrderStatus)
.Where(x => x.Orders.Any())
.Where(x => x.Order != null)
.Where(x => x.Order.User.SomeProperty.ToLower() == user.SomeProperty.ToLower());
user.SomeProperty.ToLower() 中使用的用户只是身份用户,它不为空。
public class Item
{
public Guid Id = { get; protected set; }
public List<Order> Orders { get; set; } = new List<Order>();
public Order Order => Orders.FirstOrDefault(x => x.OrderStatus.Name = "Active");
public Status Status { get; set; }
}
public class Order
{
public Guid Id = { get; protected set; }
public User User = { get; set; }
public Status OrderStatus = { get; set; }
}
public class Status
{
public Guid Id = { get; protected set; }
public string Name = { get; set; }
}
EF Core 警告说空检查是原因之一,但我不明白为什么不能翻译空检查
警告:Microsoft.EntityFrameworkCore.Query[20500] LINQ 表达式 'where (Property([x].Order, "Id") != null)' 无法翻译,将在本地计算。
警告:Microsoft.EntityFrameworkCore.Query[20500] 无法翻译 LINQ 表达式“where ([x].Order.User.SomeProperty==__user_SomeProperty_0)”,将在本地进行计算。
【问题讨论】:
标签: c# asp.net-core entity-framework-core