gpt4 book ai didi

c# - 将 Dapper 与 WP 一起使用时抛出 PlatformNotSupportedException

转载 作者:行者123 更新时间:2023-11-30 15:52:33 26 4
gpt4 key购买 nike

DEBUG 中执行 UWP 应用程序完美无缺。

使用在 RELEASE 中编译的完全相同的代码会崩溃并显示此错误消息

System.PlatformNotSupportedException: 
'Dynamic code generation is not supported on this platform.'

执行此代码时(它使用 Dapper 1.5.1System.Data.SQLite 1.0.109.2)

using (var c = NewConnection())
{
var sql = @"
update settings
set
""value"" = @SetDate
where ""key"" = 'week_date'";
c.Execute(sql, new { SetDate = date }); //<= throws PlatformNotSupportedException
// only on RELEASE not in DEBUG
}

应用程序是 UWP 配置如下。此外,错误代码是 .NET Standard 2.0 Class Library

enter image description here

为什么它仅在 RELEASE 时崩溃,如何修复?

最佳答案

Dapper 非常深入地基于运行时 IL 生成,基本上无法更改。运行时 IL 生成基本上与 UWP 不兼容。

没有简单的方法可以完成这项工作。

因此:要做到这一点,您需要使用类似小巧但不 Dapper 东西,并使用两种替代实现之一:

  • 基于反射的绑定(bind)(相对较慢,具体取决于您访问的数据量)
  • 编译时代码生成 缺失部分,大概使用某种 roslyn 分析和部分类生成

也许现在,更务实的方法是:在这种情况下不要使用 dapper。

关于c# - 将 Dapper 与 WP 一起使用时抛出 PlatformNotSupportedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54184301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com