Simple.Data.PostgreSql 投掷 'NpgsqlTypes.BitString' 未找到

Simple.Data.PostgreSql throwing 'NpgsqlTypes.BitString' not found

从 NuGet 安装 NpgsqlSimple.Data.PostgreSql 后,然后使用以下代码:

var connectionString = ConfigurationManager.ConnectionStrings["runningJournal"].ConnectionString;
var db = Database.OpenConnection(connectionString);
var userId = db.user.Insert(userName: "foo").userId;

我得到这个异常:

System.TypeLoadExceptionCould not load type 'NpgsqlTypes.BitString'
    from assembly 'Npgsql, Version=3.0.4.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7'.
at Simple.Data.PostgreSql.TypeMap..cctor()

我认为这是 Simple.Data.PostgreSql 的问题,因为从 Npgsql 访问数据库工作正常。这是一个错误,还是我需要手动添加其他依赖项?或许还有其他原因?

Npgsql 2.x 有一个 NpgsqlTypes.BitString 类型,它在 3.0 中被删除,它使用 .NET 的内置 BitArray。您正在使用的 Simple.Data.PostgreSql 版本似乎是针对 Npgsql 2.x 编译的,但您在项目中使用的是 Npgsql 3.0。确保你使用的是 Npgsql 2.2.7 而不是 3.0.x,也许让 Simple.Data.PostgreSql 项目知道发布一个适用于 Npgsql 3.0 的新版本。