wor*_*ion 6 c# linq entity-framework
我想从@where获取数据库中的所有记录,然后更新它们.为此,我创建了一个这样的查询:
public async Task MarkAllAsActive()
{
var currentUserId = _userManager.GetCurrentUserId();
await _workOrders.Where(row => row.Status == WorkOrderStatus.Draft).ForEachAsync(row =>
{
row.Status = WorkOrderStatus.Active;
_uow.MarkAsChanged(row, currentUserId);
});
}
Run Code Online (Sandbox Code Playgroud)
但是此查询选择数据库中的所有字段并不好.为了解决这个问题我尽量选择像刚才特定字段ID,Status:
public async Task MarkAllAsActive()
{
var currentUserId = _userManager.GetCurrentUserId();
await _workOrders.Select(row=>new WorkOrder { Id=row.Id,Status=row.Status}).Where(row => row.Status == WorkOrderStatus.Draft).ForEachAsync(row =>
{
row.Status = WorkOrderStatus.Active;
_uow.MarkAsChanged(row, currentUserId);
});
}
Run Code Online (Sandbox Code Playgroud)
但它返回此错误:
无法在LINQ to Entities查询中构造实体或复杂类型"DataLayer.Context.WorkOrder".
我看过类似的帖子和同样的错误,但我的问题不同,因为我想更新.
我怎样才能做到这一点?