使用 EF Power Tools 进行序列化的 InvalidOperationEception

InvalidOperationEception with serialization with EF Power Tools

提问人:sagesky36 提问时间:11/17/2023 最后编辑:sagesky36 更新时间:11/17/2023 访问量:15

问:

执行以下代码时: 正在执行的代码块带有星号

公共静态类 DbContextExtensions { public static async Task<List> SqlQueryAsync(this DbContext db, string sql, object[] parameters = null, CancellationToken cancellationToken = default) 其中 T : 类 { if(参数为 null) { 参数 = new object[] { }; }

    **if (typeof(T).GetProperties().Any())
    {
        return await db.Set<T>().FromSqlRaw(sql, parameters).ToListAsync(cancellationToken);
    }**
    else
    {
        await db.Database.ExecuteSqlRawAsync(sql, parameters, cancellationToken);
        return default;
    }
}

}

我收到以下错误: System.InvalidOperationException:类型“System.Runtime.CompilerServices.AsyncTaskMethodBuilder1[System.Collections.Generic.List'1[SpiritWMSApiCore2.Models.Unitech_ASNInfo_BOLResult],SpiritWMSApiCore2.Models.SIRISContextProcedures+<Unitech_ASNInfo_BOLAsync>d__56]”上的属性“Context”的类型“System.Threading.ExecutionContext”对于序列化或反序列化无效,因为它是指针类型、引用结构或包含具有未被特定类型取代。1+AsyncStateMachineBox

我用 bing chat gpt 查找并给出了以下内容,但我仍然不知道如何解决它...... System.InvalidOperationException:类型“System.Runtime.CompilerServices.AsyncTaskMethodBuilder1[System.Collections.Generic.List'1[SpiritWMSApiCore2.Models.Unitech_ASNInfo_BOLResult],SpiritWMSApiCore2.Models.SIRISContextProcedures+<Unitech_ASNInfo_BOLAsync>d__56]”上的属性“Context”的类型“System.Threading.ExecutionContext”对于序列化或反序列化无效,因为它是指针类型、引用结构或包含具有未被特定类型取代。1+AsyncStateMachineBox

序列化 InvalidOperationException System.Threading.ExecutionContext

评论

0赞 sagesky36 11/17/2023
你看到的错误消息 1+AsyncStateMachineBox1[SpiritWMSApiCore2.Models.Unitech_ASNInfo_BOLResult],SpiritWMSApiCore2.Models.SIRISContextProcedures+<Unitech_ASNInfo_BOLAsync>d__56]'System.InvalidOperationException: The type 'System.Threading.ExecutionContext&' of property 'Context' on type 'System.Runtime.CompilerServices.AsyncTaskMethodBuilder1[System.Collections.Generic.List
0赞 sagesky36 11/17/2023
对于序列化或反序列化无效,因为它是指针类型、引用结构或包含尚未被特定类型替换的泛型参数。
0赞 sagesky36 11/17/2023
在你的例子中,该类型导致了问题,因为它是指针类型、引用结构或包含尚未被特定类型替换的泛型参数。System.Threading.ExecutionContext&
0赞 sagesky36 11/17/2023
以下是一些可能的解决方案: 1. 避免序列化不支持的类型:如果可能,请避免序列化不支持的类型。这包括指针类型、引用结构和具有未被特定类型替换的泛型参数的类型。2. 将泛型参数替换为特定类型:如果您的类型包含泛型参数,请在序列化之前将其替换为特定类型。3. 使用自定义序列化程序:如果内置的 .NET 序列化程序不能满足您的需求,请考虑使用可以处理更复杂类型的自定义序列化程序

答: 暂无答案