protected override SnapshotObject LoadSnapshotObject(Guid sourceId) { SnapshotObject snapshot = null; Pgsql.With(_connString) .Reader( Queries.GetSnapshotSql.FixSql(), new Dictionary <string, object> { { "SourceId", sourceId } }, rdr => { //if(!rdr.Read())return; snapshot = new SnapshotObject { SourceId = rdr.GetGuid(0), Version = rdr.GetInt32(1), Timestamp = rdr.GetDateTime(2), Type = rdr.GetString(3), Data = rdr.GetString(4), }; }) .Execute(); return(snapshot); }
public EventStorageProvider() { ConnectionStringSettings connStr = ConfigurationManager.ConnectionStrings["EventStore"]; if (null == connStr || string.IsNullOrWhiteSpace(connStr.ConnectionString)) { throw new NotFoundException("未配置连接字符串:EventStore!"); } _connString = connStr.ConnectionString; _transExecutor = Pgsql.With(connStr.ConnectionString); }
protected override IEnumerable <EventObject> LoadEventObjects(Guid sourceId, int skipVersion) { var eventObjects = new List <EventObject>(); Pgsql.With(_connString) .Reader(Queries.GetEventsSql.FixSql(), new Dictionary <string, object> { { "SourceId", sourceId }, { "SkipVersion", skipVersion }, }, rdr => { /* * public const string GetEventsSql = @" * SELECT [SourceId] * ,[Version] * ,[Timestamp] * ,[Type] * ,[Data] * FROM [EventStore].[dbo].[Events] * WHERE [SourceId] = @SourceId * AND [Version] > @SkipVersion * "; */ var obj = new EventObject { SourceId = rdr.GetGuid(0), Version = rdr.GetInt32(1), Timestamp = rdr.GetDateTime(2), Type = rdr.GetString(3), Data = rdr.GetString(4), }; eventObjects.Add(obj); }) .Execute(); return(eventObjects); }