代码之家  ›  专栏  ›  技术社区  ›  JohnWick

不推荐使用SqliteConnection.BeginTransaction()

  •  2
  • JohnWick  · 技术社区  · 7 年前

    使用最新版本的system.data.sqlite nuget包创建一个简单的sqlite事务时,我注意到sqliteconnection.beginTransaction()方法的intellisense描述包含“[已弃用]”,并以“已弃用”一词开头(大写,吓人!)。但是,没有提到开始事务的新方法是什么。

    我仍然可以很好地调用这个方法,在ide中甚至没有警告,但是有没有一种新的方法可以实现我不知道的以下内容?

    using (var conn = new SQLiteConnection(dbConnectionString))
    {
        conn.Open();
        using (var trans = conn.BeginTransaction())
        {
            using (var cmd = new SQLiteCommand("some sql statement here", conn, trans))
            {
                cmd.ExecuteNonQuery();
            }
            trans.Commit();
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  7
  •   Dmitry Pavliv    7 年前

    好吧,根据他们的源代码,只有带param的重载 bool deferredLock 已经过时了。您使用的方法不是:

    enter image description here

    资料来源: http://system.data.sqlite.org/index.html/artifact/5d691bfc46d3c324