CreateParam 没有实现

CreateParam does not have an implementation

我正在尝试 运行 Sqllite 内存数据库和 ServiceStack。

Visual Studio.net 4.6.1

中的控制台应用程序

(如果我 运行 LinqPad 中的相同代码工作正常)

平台目标:x64

安装包ServiceStack.OrmLite.Sqlite64

static void Main(string[] args)
{
    OrmLiteConfig.DialectProvider = SqliteDialect.Provider;

    using (IDbConnection db = ":memory:".OpenDbConnection())
    {

    }
}

然后运行使用这个应用程序,我得到这个错误:

An unhandled exception of type 'System.TypeLoadException' occurred in
 ConsoleApplication1.exe

Additional information: Method 'CreateParam' in type     
  'ServiceStack.OrmLite.Sqlite.SqliteOrmLiteDialectProvider' 
   from assembly 
  'ServiceStack.OrmLite.SqliteNET, 
   Version=4.0.42.0, 
   Culture=neutral,     
   PublicKeyToken=null' does not have an implementation.  

package.json:

<?xml version="1.0" encoding="utf-8"?>
<packages>
   <package id="ServiceStack.Common" version="4.5.4" targetFramework="net461" />
   <package id="ServiceStack.Interfaces" version="4.5.4" targetFramework="net461" />
   <package id="ServiceStack.OrmLite" version="4.5.4" targetFramework="net461" />
   <package id="ServiceStack.OrmLite.Sqlite64" version="4.0.42" targetFramework="net461" />
   <package id="ServiceStack.Text" version="4.5.4" targetFramework="net461" />
</packages>

在所有版本的 ServiceStack 中,您需要为所有 ServiceStack 包引用相同的版本。您的 packages.json 表明它引用了已弃用的 ServiceStack.OrmLite.Sqlite64 NuGet 包的旧版本 v4.0.42。

OrmLite.Sqlite64OrmLite.Sqlite32 都已弃用到 ServiceStack.OrmLite.Sqlite.Windows 包含 32 位和 64 位本机 .dll 的 NuGet 包。

PM> Install-Package ServiceStack.OrmLite.Sqlite.Windows

您还可以使用 ServiceStack.OrmLite.Sqlite.Mono Sqlite NuGet 包,它适用于 Linux 和 Windows 并引用本机 sqlite3.dll.