public SqliteChatRecordPersister(string sqlitePath) { try { bool isNew = !File.Exists(sqlitePath); //2014.11.27 string dirName = Path.GetDirectoryName(sqlitePath); if (!Directory.Exists(dirName)) { Directory.CreateDirectory(dirName); } //初始化Sqlite数据库 DataConfiguration config = new SqliteDataConfiguration(sqlitePath); TransactionScopeFactory transactionScopeFactory = new TransactionScopeFactory(config); transactionScopeFactory.Initialize(); if (isNew) { string sql = "CREATE TABLE ChatMessageRecord (AutoID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, SpeakerID VARCHAR( 0, 20 ) NOT NULL, AudienceID VARCHAR( 0, 20 ) NOT NULL, IsGroupChat BOOLEAN NOT NULL,IsNotice BOOLEAN NOT NULL, Content BLOB NOT NULL, OccureTime DATETIME NOT NULL ); " + "CREATE INDEX idx_ChatMessageRecord ON ChatMessageRecord ( SpeakerID, AudienceID, OccureTime DESC );" + "CREATE INDEX idx2_ChatMessageRecord ON ChatMessageRecord ( AudienceID, IsGroupChat, OccureTime );"; using (TransactionScope scope = transactionScopeFactory.NewTransactionScope()) { IRelationAccesser accesser = scope.NewRelationAccesser(); accesser.DoCommand(sql); scope.Commit(); } } base.Initialize(transactionScopeFactory); } catch { } }
public SqliteChatRecordPersister(string sqlitePath) { try { bool isNew = !File.Exists(sqlitePath); //2014.11.27 string dirName = Path.GetDirectoryName(sqlitePath); if (!Directory.Exists(dirName)) { Directory.CreateDirectory(dirName); } //初始化Sqlite数据库 DataConfiguration config = new SqliteDataConfiguration(sqlitePath); TransactionScopeFactory transactionScopeFactory = new TransactionScopeFactory(config); transactionScopeFactory.Initialize(); if (isNew) { string sql = "CREATE TABLE ChatMessageRecord (AutoID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, SpeakerID VARCHAR( 0, 20 ) NOT NULL, AudienceID VARCHAR( 0, 20 ) NOT NULL, IsGroupChat BOOLEAN NOT NULL, Content BLOB NOT NULL, OccureTime DATETIME NOT NULL ); " + "CREATE INDEX idx_ChatMessageRecord ON ChatMessageRecord ( SpeakerID, AudienceID, OccureTime DESC );" + "CREATE INDEX idx2_ChatMessageRecord ON ChatMessageRecord ( AudienceID, IsGroupChat, OccureTime );"; using (TransactionScope scope = transactionScopeFactory.NewTransactionScope()) { IRelationAccesser accesser = scope.NewRelationAccesser(); accesser.DoCommand(sql); scope.Commit(); } } base.Initialize(transactionScopeFactory); } catch { } }