如何使用 EF 在 SQLite DB 中检索和设置 user_version

问题描述 投票:0回答:2

我想做的是从我的 SQLite 数据库加载并设置 user_version (PRAGMA user_version)。我正在使用实体框架,但如果我不能通过它来做到这一点,那么我需要能够在 C# 4.0 中以其他可能的方式来做到这一点。

我尝试过:

this.DatabaseConnection.Connection.Open();
System.Data.Common.DbCommand cmd = this.DatabaseConnection.Connection.CreateCommand();
cmd.CommandText = "PRAGMA user_version";
cmd.CommandType = System.Data.CommandType.Text;
System.Data.Common.DbDataReader reader = cmd.ExecuteReader();

其中 DatabaseConnection 是我的 EF 上下文,Connection 是上下文中的 DbConnection 对象,但我得到一个异常:

查询语法无效。靠近 标识符“user_version”,第 1 行, 第 8 栏。

c# sqlite entity-framework-4
2个回答
23
投票

嗯...我终于明白了。我相信这是使用实体框架时最好的方法。

要设置 user_version,您需要执行以下操作...

this.DatabaseConnection.ExecuteStoreCommand("PRAGMA user_version = 5");

要获取 user_version,您需要执行此操作...

long result = this.DatabaseConnection.ExecuteStoreQuery<long>("PRAGMA user_version").FirstOrDefault();

0
投票

这对我有用:

enter code here
            string connString = "Data Source = Data.sqlite;Version=3";
            SQLiteConnection conn = new SQLiteConnection(connString);
            Baglanti1.Open();
            SQLiteCommand command = new SQLiteCommand("PRAGMA user_version", Baglanti1);
            long result = (long)command.ExecuteScalar();
© www.soinside.com 2019 - 2024. All rights reserved.