Entity Framework выполняет запрос на установку внешнего ключа - PullRequest
0 голосов
/ 09 ноября 2011

Я использую EF4.0 и имею объект Voucher, который имеет свойство VoucherStatusTypeId (который является внешним ключом) и свойство навигации VoucherStatusType.

Я выполняю вызов SingleOrDefault в контексте объекта для возвратаодин ваучер, а затем обновить его свойства.Я заметил, что в ту минуту, когда я установил свойство VoucherStatusTypeId, EF выполняет запрос к базе данных, возвращая ВСЕ записи ваучеров с VoucherstatusId, совпадающим со значением, которое я пытаюсь установить.Это вызывает у меня большое разочарование, потому что в таблицах ваучеров много тысяч записей, и этот запрос возвращает огромный объем данных, что кажется беспричинным.

Может кто-нибудь объяснить, почему EF делает это и чтоЯ могу сделать, чтобы остановить это / обойти это?

        var repo = new VoucherRepository();
        var voucher = repo.GetValidByVoucherNumber(request.VoucherNrRedeemed);
        voucher.BranchRedeemedId = branchId;
        voucher.CardRedeemedId = customerCardId;
        voucher.VoucherStatusTypeId = (int)VoucherStatusTypeEnum.Redeemed; //This line causes a second query
        voucher.RedeemedDate = DateTime.Now;
        repo.Update(voucher);

Объект хранилища по сути является просто оболочкой для ObjectContext

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...