Я добавил свойство lazyloaded под названием Orders в мой класс Customer. Как вы думаете, разумно ли кэшировать данные в приватном поле?
private IList<Order> _orders;
[SubSonicIgnore]
public IList<Order> Orders
{
get
{
if (_orders == null)
{
var repository = new SimpleRepository("MyConnectionString", SimpleRepositoryOptions.None);
_orders = repository.Find<Order>(x => x.CustomerId == this.CustomerId);
}
return _orders;
}
}
Или лучше не кэшировать его так:
[SubSonicIgnore]
public IList<Order> Orders
{
get
{
var repository = new SimpleRepository("MyConnectionString", SimpleRepositoryOptions.None);
return repository.Find<Order>(x => x.CustomerId == this.CustomerId);
}
}
Причина, по которой я спрашиваю, состоит в том, что я думаю, что это хорошая идея, чтобы кэшировать данные для повышения производительности, но в то же время я боюсь, что кэширование данных может привести к тому, что некоторые из них станут несинхронными другой процесс вставляет / удаляет записи из базы данных.