我一直在评估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
异常终止。
任何帮助将不胜感激
答案 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;