STRHM
1.0.0
소개 기사
예제 엔터티는 몇 가지 기본 필드가 있는 Book 클래스입니다.
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; }
}
맞습니다. 맞춤 속성을 발견하셨습니다. 이 속성은 Redis 해시에 값으로 설정될 때 직렬화되는 특정 속성을 담당합니다.
도서 저장소는 도서 저장소 자체에서 기능을 확장하려는 경우 가장 일반적으로 필요한 기능과 데이터베이스 연결을 노출하므로 BaseRedisHashSetRepository에서 상속됩니다.
public class BookRepository : BaseRedisHashSetRepository<Book>
{
public BookRepository(IRedisConnection redisConnection, IStronglyTypedRedisSerializer serializer, RedisHashSetOptions configurationOptions)
: base(redisConnection, serializer, configurationOptions)
{
}
}
생성자 매개변수:
값 가져오기의 예:
// 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)
또는
var book = await _bookRepository.GetAsync(book.Id.ToString());
설정 값의 예:
await _bookRepository.SaveAsync(book.Id.ToString(), book);
또는
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 }
});