C# 表合并时Linq2db InvalidCastException

C# 表合并时Linq2db InvalidCastException,c#,orm,linq2db,C#,Orm,Linq2db,我正在尝试用我自己的类对象列表更新表注册表。我发现我需要与我的收藏合并 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<Documen

我正在尝试用我自己的类对象列表更新表注册表。我发现我需要与我的收藏合并

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行

这是什么原因?怎么了

upd

堆栈跟踪

   at LinqToDB.Linq.Builder.AllJoinsLinqBuilder.BuildMethodCall(ExpressionBuilder builder, MethodCallExpression methodCall, BuildInfo buildInfo) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\AllJoinsLinqBuilder.cs:line 44
   at LinqToDB.Linq.Builder.ExpressionBuilder.BuildSequence(BuildInfo buildInfo) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.cs:line 175
   at LinqToDB.Linq.Builder.ContextParser.BuildSequence(ExpressionBuilder builder, BuildInfo buildInfo) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ContextParser.cs:line 22
   at LinqToDB.Linq.Builder.ExpressionBuilder.BuildSequence(BuildInfo buildInfo) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.cs:line 175
   at LinqToDB.Linq.Builder.ExpressionBuilder.Build[T]() in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.cs:line 146
   at LinqToDB.Linq.Query`1.CreateQuery(IDataContext dataContext, Expression expr) in C:\projects\linq2db\Source\LinqToDB\Linq\Query.cs:line 280
   at LinqToDB.Linq.Query`1.GetQuery(IDataContext dataContext, Expression& expr) in C:\projects\linq2db\Source\LinqToDB\Linq\Query.cs:line 233
   at LinqToDB.Linq.ExpressionQuery`1.GetQuery(Expression& expression, Boolean cache) in C:\projects\linq2db\Source\LinqToDB\Linq\ExpressionQuery.cs:line 84
   at LinqToDB.Linq.ExpressionQuery`1.System.Linq.IQueryProvider.Execute[TResult](Expression expression) in C:\projects\linq2db\Source\LinqToDB\Linq\ExpressionQuery.cs:line 165
   at LinqToDB.DataProvider.BasicMergeBuilder`2.BuildPredicateByKeys(Type keyType, Expression targetKey, Expression sourceKey) in C:\projects\linq2db\Source\LinqToDB\DataProvider\BasicMergeBuilder.cs:line 97
   at LinqToDB.DataProvider.BasicMergeBuilder`2.BuildMatch() in C:\projects\linq2db\Source\LinqToDB\DataProvider\BasicMergeBuilder.cs:line 561
   at LinqToDB.DataProvider.BasicMergeBuilder`2.BuildCommandText() in C:\projects\linq2db\Source\LinqToDB\DataProvider\BasicMergeBuilder.cs:line 646
   at LinqToDB.DataProvider.BasicMergeBuilder`2.BuildCommand() in C:\projects\linq2db\Source\LinqToDB\DataProvider\BasicMergeBuilder.cs:line 1265
   at LinqToDB.DataProvider.DataProviderBase.Merge[TTarget,TSource](DataConnection dataConnection, IMergeable`2 merge) in C:\projects\linq2db\Source\LinqToDB\DataProvider\DataProviderBase.cs:line 481
   at WsMVC.Core.ExpenditurePaper.Incur() in D:\Projects\ProjMVC\MVC\Core\Document.cs:line 225
值ex.ToString()


@mjwills我已经编辑了我的帖子这个问题在linq2db 2.4.0中得到了修复
 LinqToDB.Linq.Builder.AllJoinsLinqBuilder.BuildMethodCall(ExpressionBuilder builder, MethodCallExpression methodCall, BuildInfo buildInfo)
   at LinqToDB.Linq.Builder.AllJoinsLinqBuilder.BuildMethodCall(ExpressionBuilder builder, MethodCallExpression methodCall, BuildInfo buildInfo) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\AllJoinsLinqBuilder.cs:line 44
   at LinqToDB.Linq.Builder.ExpressionBuilder.BuildSequence(BuildInfo buildInfo) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.cs:line 175
   at LinqToDB.Linq.Builder.ContextParser.BuildSequence(ExpressionBuilder builder, BuildInfo buildInfo) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ContextParser.cs:line 22
   at LinqToDB.Linq.Builder.ExpressionBuilder.BuildSequence(BuildInfo buildInfo) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.cs:line 175
   at LinqToDB.Linq.Builder.ExpressionBuilder.Build[T]() in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.cs:line 146
   at LinqToDB.Linq.Query`1.CreateQuery(IDataContext dataContext, Expression expr) in C:\projects\linq2db\Source\LinqToDB\Linq\Query.cs:line 280
   at LinqToDB.Linq.Query`1.GetQuery(IDataContext dataContext, Expression& expr) in C:\projects\linq2db\Source\LinqToDB\Linq\Query.cs:line 233
   at LinqToDB.Linq.ExpressionQuery`1.GetQuery(Expression& expression, Boolean cache) in C:\projects\linq2db\Source\LinqToDB\Linq\ExpressionQuery.cs:line 84
   at LinqToDB.Linq.ExpressionQuery`1.System.Linq.IQueryProvider.Execute[TResult](Expression expression) in C:\projects\linq2db\Source\LinqToDB\Linq\ExpressionQuery.cs:line 165
   at LinqToDB.DataProvider.BasicMergeBuilder`2.BuildPredicateByKeys(Type keyType, Expression targetKey, Expression sourceKey) in C:\projects\linq2db\Source\LinqToDB\DataProvider\BasicMergeBuilder.cs:line 97
   at LinqToDB.DataProvider.BasicMergeBuilder`2.BuildMatch() in C:\projects\linq2db\Source\LinqToDB\DataProvider\BasicMergeBuilder.cs:line 561
   at LinqToDB.DataProvider.BasicMergeBuilder`2.BuildCommandText() in C:\projects\linq2db\Source\LinqToDB\DataProvider\BasicMergeBuilder.cs:line 646
   at LinqToDB.DataProvider.BasicMergeBuilder`2.BuildCommand() in C:\projects\linq2db\Source\LinqToDB\DataProvider\BasicMergeBuilder.cs:line 1265
   at LinqToDB.DataProvider.DataProviderBase.Merge[TTarget,TSource](DataConnection dataConnection, IMergeable`2 merge) in C:\projects\linq2db\Source\LinqToDB\DataProvider\DataProviderBase.cs:line 481
   at WsMVC.Core.ExpenditurePaper.Incur() in D:\Projects\ProjMVC\MVC\Core\Document.cs:line 225
System.InvalidCastException: Specified cast is not valid.
   at LinqToDB.Linq.Builder.AllJoinsLinqBuilder.BuildMethodCall(ExpressionBuilder builder, MethodCallExpression methodCall, BuildInfo buildInfo) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\AllJoinsLinqBuilder.cs:line 44
   at LinqToDB.Linq.Builder.ExpressionBuilder.BuildSequence(BuildInfo buildInfo) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.cs:line 175
   at LinqToDB.Linq.Builder.ContextParser.BuildSequence(ExpressionBuilder builder, BuildInfo buildInfo) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ContextParser.cs:line 22
   at LinqToDB.Linq.Builder.ExpressionBuilder.BuildSequence(BuildInfo buildInfo) in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.cs:line 175
   at LinqToDB.Linq.Builder.ExpressionBuilder.Build[T]() in C:\projects\linq2db\Source\LinqToDB\Linq\Builder\ExpressionBuilder.cs:line 146
   at LinqToDB.Linq.Query`1.CreateQuery(IDataContext dataContext, Expression expr) in C:\projects\linq2db\Source\LinqToDB\Linq\Query.cs:line 280
   at LinqToDB.Linq.Query`1.GetQuery(IDataContext dataContext, Expression& expr) in C:\projects\linq2db\Source\LinqToDB\Linq\Query.cs:line 233
   at LinqToDB.Linq.ExpressionQuery`1.GetQuery(Expression& expression, Boolean cache) in C:\projects\linq2db\Source\LinqToDB\Linq\ExpressionQuery.cs:line 84
   at LinqToDB.Linq.ExpressionQuery`1.System.Linq.IQueryProvider.Execute[TResult](Expression expression) in C:\projects\linq2db\Source\LinqToDB\Linq\ExpressionQuery.cs:line 165
   at LinqToDB.DataProvider.BasicMergeBuilder`2.BuildPredicateByKeys(Type keyType, Expression targetKey, Expression sourceKey) in C:\projects\linq2db\Source\LinqToDB\DataProvider\BasicMergeBuilder.cs:line 97
   at LinqToDB.DataProvider.BasicMergeBuilder`2.BuildMatch() in C:\projects\linq2db\Source\LinqToDB\DataProvider\BasicMergeBuilder.cs:line 561
   at LinqToDB.DataProvider.BasicMergeBuilder`2.BuildCommandText() in C:\projects\linq2db\Source\LinqToDB\DataProvider\BasicMergeBuilder.cs:line 646
   at LinqToDB.DataProvider.BasicMergeBuilder`2.BuildCommand() in C:\projects\linq2db\Source\LinqToDB\DataProvider\BasicMergeBuilder.cs:line 1265
   at LinqToDB.DataProvider.DataProviderBase.Merge[TTarget,TSource](DataConnection dataConnection, IMergeable`2 merge) in C:\projects\linq2db\Source\LinqToDB\DataProvider\DataProviderBase.cs:line 481
   at WsMVC.Core.ExpenditurePaper.Incur() in D:\Projects\ProjMVC\WsMVC\Core\Document.cs:line 225