Проблема в том, что отслеживание изменений избыточно, поскольку предлагается создавать кратковременные контексты с помощью фабрики БД. >
Например.
Код: Выделить всё
public class OrderService
{
private readonly IDbContextFactory _contextFactory;
public OrderService(IDbContextFactory contextFactory)
{
_contextFactory = contextFactory;
}
public Order GetById(int id)
{
using var context = _contextFactory.CreateDbContext();
return context.Orders.Include(o => o.Lines).ThenInclude(o => o.Product).Where(o => o.OrderId == id).FirstOrDefault();
}
}
Код: Выделить всё
ctx.Attach(order)Существует ли известный Паттен для лучшего способа справиться с этим?
Например.
Я подумал о том, чтобы прикрепить возвращенный объект к новому DBContext, но никогда не запрашивает и не сохраняет в базе данных этот контекст. Я надеюсь, что он не откроет соединение с базой данных и, следовательно, не потребует явного удаления.
Затем я могу запросить DBContext ChangeTracking, чтобы получить изменения, и они передают их в правильное обновление, добавление, удаление недолговечных контекстов БД.
Или еще лучше, просто использовать возможности отслеживания изменений ядра EF без контекста БД?
Подробнее здесь: https://stackoverflow.com/questions/791 ... -dbcontext