【发布时间】:2020-10-17 20:20:54
【问题描述】:
我需要使用 C# .NET Core 3.0 中的对象列表中的值对表执行更新。我尝试使用 Join 方法,但收到此错误:
LINQ 表达式的处理
DbSet<Room> .Join( outer: __p_0, inner: p => p.RoomId, outerKeySelector: s => s.ruId, innerKeySelector: (s, p) => new { kuku = s, riku = p })'NavigationExpandingExpressionVisitor' 失败。这可能表示 EF Core 中的错误或限制。有关更多详细信息,请参阅link。
public class Room
{
[DatabaseGenerated(DatabaseGeneratedOption.None)]
[Key]
public int RoomId { get; set; }
[StringLength(50, MinimumLength = 3)]
public string RoomAddress { get; set; }
}
public class roomsForUpdate
{
public int ruId { get; set; }
public string ruName { get; set; }
}
var roomList = new List<roomsForUpdate>() { new roomsForUpdate { ruId = 1, ruName = "aa" }, new roomsForUpdate { ruId = 2, ruName = "bb" } };
var result = _context.Room.Join(roomList, p => p.RoomId, s => s.ruId, (s, p) => new { kuku = s, riku = p }).ToList();
【问题讨论】:
-
什么是 kuku 和 riku?
-
你不能用
_context.Room加入一个本地列表,它不能被翻译成SQL。 -
在获得所有数据之前,您无法处理数据。那么你是如何接收数据的呢?您使用什么来确定何时收到所有数据?
-
@TylerH 这个老问题需要提出来吗?
-
@CaiusJard 标签需要修复。而且,它不是那么旧。