Платформа 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();
    }

0 ответов

Другие вопросы по тегам