2011-04-05 30 views
11

我想要做的是加載並從我的SQLite數據庫中設置user_version(PRAGMA user_version)。我正在使用實體框架,但是如果我不能通過它,那麼我需要能夠在C#4.0中以其他方式做到這一點。我如何檢索和設置SQLite數據庫中的user_version與EF

我想:

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環境和連接的範疇之內的DbConnection對象,但我得到一個異常:

查詢語法無效。近 標識符 'user_version',1號線, 列8

回答

13

嗯...我終於想通了。我相信這是在使用實體框架時最好的方法。

要設置你需要做的這個user_version ...

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

得到你需要做到這一點user_version ...

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

這是'model.Database.SqlQuery ( 「...」)在更高版本的EF中。 – 2016-11-09 20:03:08

相關問題