SCOPE_IDENTITY异常

时间:2018-11-10 11:48:41

标签: dapper-simplecrud

我一直在评估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异常终止。

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

从Github页来看,当前版本似乎已不再支持SQLite:

  

数据库支持

     

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

     

SimpleCRUD.SetDialect(SimpleCRUD.Dialect.PostgreSQL);

     

SimpleCRUD.SetDialect(SimpleCRUD.Dialect.MySQL);

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

答案 1 :(得分:1)

我在使用dapper fastCrud时遇到同样的问题。因此,请将这行代码添加到我的构造函数中。

 OrmConfiguration.DefaultDialect = SqlDialect.SqLite;