1

我一直在评估使用 dapper 和 sqlite 的 simplecrud 扩展。无论我在插入表格时尝试什么,都会失败并出现异常

没有这样的功能 SCOPE_IDENTITY

表类

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

最简单的测试代码

static void Main( string[] args )
{
    SQLiteConnection conn = new SQLiteConnection( "Data Source=E:\\Databases\\MyDatabase.db;Version=3" );
    conn.Open();

    var usr = new User { Name = "Dave", Age = 65 };
    var id = conn.Insert(usr);
    conn.Close();
}

如前所述,当我运行代码时,数据被插入到表中,但程序以SCOPE_IDENTITY异常终止。

任何帮助将不胜感激

4

2 回答 2

2

从 Github 页面来看,当前版本似乎已经放弃了对 SQLite 的支持:

数据库支持

有一个更改数据库方言的选项。默认为 Microsoft SQL Server,但可以更改为 PostgreSQL 或 MySQL。我们在 .Net Core 版本中放弃了对 SQLite 的支持。

SimpleCRUD.SetDialect(SimpleCRUD.Dialect.PostgreSQL);

SimpleCRUD.SetDialect(SimpleCRUD.Dialect.MySQL);

根据您拥有的版本,您可能可以使用类似的调用来设置 SQLite“方言”(如果您的代码库仍然支持它)。

于 2018-11-10T12:26:17.447 回答
1

我正在使用 dapper fastCrud 我面临同样的问题。所以在我的构造函数中添加这行代码。

 OrmConfiguration.DefaultDialect = SqlDialect.SqLite;
于 2019-12-12T14:06:01.797 回答