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 เนื่องจากมีการเปิดเผยฟังก์ชันการทำงานและการเชื่อมต่อฐานข้อมูลที่จำเป็นโดยทั่วไป ในกรณีที่คุณต้องการขยายฟังก์ชันการทำงานในพื้นที่เก็บข้อมูล Book เอง
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 }
});