public static bool TryGet(string name, DataStoreRetrieveOption option, out DataStoreItem item) { if (name == null) { throw new ArgumentNullException(); } using (var rCommand = r_Connection.CreateCommand()) { rCommand.CommandText = option == DataStoreRetrieveOption.IncludeContent ? "SELECT content, timestamp FROM datastore.item WHERE name = @name;" : "SELECT NULL, timestamp FROM datastore.item WHERE name = @name;"; rCommand.Parameters.AddWithValue("@name", name); using (var rReader = rCommand.ExecuteReader()) { if (!rReader.Read()) { item = default(DataStoreItem); return(false); } item = new DataStoreItem(name, rReader[0] as byte[], rReader.GetInt64Optional(1)); return(true); } } }
public static IEnumerable <DataStoreItem> EnumerateItems(DataStoreRetrieveOption option) { using (var rCommand = r_Connection.CreateCommand()) { rCommand.CommandText = option == DataStoreRetrieveOption.IncludeContent ? "SELECT name, content, timestamp FROM datastore.item;" : "SELECT name, NULL, timestamp FROM datastore.item;"; using (var rReader = rCommand.ExecuteReader()) while (rReader.Read()) { yield return(new DataStoreItem(rReader.GetString(0), rReader[1] as byte[], rReader.GetInt64Optional(2))); } } }