我正在尝试使用自己的类对象列表更新表Registry。我发现我should use temp tables要与我的收藏合并。
forms.formName.ListName.column(column number,oItem)
然后将这个临时表与目标表一起merge。
column(column number,oItem)
但是当我使用合并操作时,我会在
中获取InvalidCastException。var tsource = Content.GroupBy(l => l.CardId).Select(s => new DocumentContent
{
CardId = s.Key,
Quantity = s.Sum(c=> c.Quantity),
}).ToList();
var tempTable = db.CreateTable<DocumentContent>("#tmp");
tempTable.BulkCopy(tsource);
var source = tempTable.Select(s => s);
在\ LinqToDB \ Linq \ Builder \ AllJoinsLinqBuilder.cs:第44行
这是什么原因?怎么了?
更新
堆栈跟踪
db.GetTable<Registry>()
.Merge()
.Using(source)
.On(s => s.CardId, f => f.CardId)
.UpdateWhenMatched((t, s) => new Registry()
{
Quantity = t.Quantity + s.Quantity,
})
.Merge();
值ex.ToString()
LinqToDB.Linq.Builder.AllJoinsLinqBuilder.BuildMethodCall(ExpressionBuilder builder, MethodCallExpression methodCall, BuildInfo buildInfo)