Платформа Entity Framework сначала возвращает отдельные объекты при вызове с использованием шаблона IRepository
Попытка получить объект, используя шаблон IRepository с Entity Framework Code First. Обычно при вызове хранилища он возвращает объект, который присоединен к контексту, и изменения будут отслеживаться. Моя проблема сейчас в том, что репозиторий, похоже, возвращает только отдельные объекты.
При добавлении одного объекта к другому, мой savechange будет обрабатывать оба объекта, подключенных друг к другу, как вставленные, а не вставлять один, и соединять другой как посторонний объект, поскольку сосуд по какой-то причине обрабатывается как отсоединенный. Я знаю, что это может быть решено путем прикрепления объекта-сосуда, это не то, что я ищу, так как он должен быть прикреплен при запросе в первую очередь.
IRepository
T FirstOrDefault(Expression<Func<T, bool>> predicate);
EFRepository (Реализация IRepository)
public T FirstOrDefault(Expression<Func<T, bool>> predicate)
{
return Context.Set<T>().FirstOrDefault(predicate);
}
Называя это
private readonly IRepository<VesselModel> _vesselRepository;
private readonly IRepository<InspectionModel> _inspectionRepository;
public Constr(IRepository<VesselModel> vesselRepository, IRepository<InspectionModel> inspectionRepository){
_vesselRepository = vesselRepository;
_inspectionRepository = inspectionRepository;
}
public void RunConnection(int vesselId){
var vessel = _vesselRepository.FirstOrDefault(x=> x.OrigId == vesselId);
var inspection = new Inspection{Vessel = vessel};
_inspectionRepository.Add(inspection);
_inspectionRepository.SaveChanges();
}