STRHM
1.0.0
artikel pengantar
Entitas contoh adalah kelas Buku, yang memiliki beberapa bidang dasar.
public class Book
{
public int Id { get; set; }
public int? Rating { get; set; }
public DateTime PublishedOn { get; set; }
[SerializableRedisProperty]
public List<Author> Authors { get; set; }
}
Benar, Anda melihat atribut khusus. Atribut ini bertanggung jawab atas pembuatan serial properti tertentu saat properti tersebut disetel ke dalam hash Redis sebagai nilai.
Repositori buku mewarisi dari BaseRedisHashSetRepository, karena memperlihatkan fungsionalitas paling umum yang diperlukan dan koneksi database, jika Anda ingin memperluas fungsionalitas dalam repositori Buku itu sendiri.
public class BookRepository : BaseRedisHashSetRepository<Book>
{
public BookRepository(IRedisConnection redisConnection, IStronglyTypedRedisSerializer serializer, RedisHashSetOptions configurationOptions)
: base(redisConnection, serializer, configurationOptions)
{
}
}
Parameter konstruktor:
Contoh mendapatkan nilai:
// Check if value is set on property
if (updatedBook.HasValue(b => b.Rating))
// Get values
updatedBook.Get<IEnumerable<Author>>(b => b.Authors)
updatedBook.Get<int?>(b => b.Rating)
atau
var book = await _bookRepository.GetAsync(book.Id.ToString());
Contoh pengaturan nilai:
await _bookRepository.SaveAsync(book.Id.ToString(), book);
atau
await _bookRepository.HashSetAsync(book.Id.ToString(), new StronglyTypedDictionary<Book>(new StronglyTypedRedisNewtonsoftSerializer())
{
{ b => b.Rating, 10 },
{ b => b.Authors, new List<Author>()},
{ b => b.PublishedOn, DateTime.Now }
});