entity-framework-6 - EntityFramework Extensions UpdateFromQuery 中的无效更新表达式异常
问题描述
我正在使用 EF 6 和 Z.EntityFramework.Extensions。
以下代码:
using (var context = contextFactory())
{
var modified = context.Receita.
Where(r => r.V_UID == receitaEletronica.VendaUid && r.numeroreceita == receitaEletronica.NumeroReceita).
Join(context.Tabela_Comparticipacao.
Where(t => entidades.Contains(t.ec_uid)).
Join(context.Tabela_Comparticipacao.Where(t => t.flag_elect == 1),
source => source.ec_uid,
dest => dest.ec_uid,
(source, dest) => new { Source = source, Dest = dest }),
r => r.TaCo_UID,
t => t.Source.TaCo_UID,
(r, t) => new { Receita = r, NovoTaCo = t.Dest.TaCo_UID }).
UpdateFromQuery(r => new Receita { TaCo_UID = r.NovoTaCo });
}
抛出以下异常:
Message:
Test method winphar.services.receitas.ReceitasDAOTest.TestAtualizarReceitaElectronicaTaCoUidEntidadesCentralizadas threw exception:
System.Exception: Oops! Invalid update expression, the body is not a NewExpression. Please refer to the documentation to get examples about how to use this feature.
Stack Trace:
DbContextExtensions.[](IQueryable`1 , Expression`1 , Action`1 , Boolean )
DbContextExtensions.UpdateFromQuery[TEntity](IQueryable`1 query, Expression`1 updateExpression, Action`1 bulkOperationFactory)
DbContextExtensions.UpdateFromQuery[TEntity](IQueryable`1 query, Expression`1 updateExpression)
ReceitasDAO.AtualizarReceitaElectronicaTaCoUidEntidadesCentralizadas(ReceitaEletronica receitaEletronica, List`1 entidades) line 114
ReceitasDAOTest.TestAtualizarReceitaElectronicaTaCoUidEntidadesCentralizadas() line 267
我究竟做错了什么?
解决方案
推荐阅读
- r - 从 R 中的字符串中查找姓氏的最快方法
- amazon-web-services - 如何使用 DMS 将 RDS Postgre 数据库从一个 vpc 迁移到另一个 vpc?
- ios - SearchBar 未过滤 Firebase 数据
- mysql - 部分执行 init.sql
- c# - C# - Azure SSO 令牌过期抛出错误
- android - 如何停用 Android PlayStore 上的特定应用测试版?
- python-3.x - 如何使用 gitpython 在远程获取最新的提交哈希?
- python - Kivy:从 Spinner 或 Dropdown 选择值后更新 TextInput
- jpos - jpos :对于传入消息加载动态打包器有效,但不适用于传出消息
- java - Firebase 身份验证控制台未显示添加的新用户