ASP .NET MVC проблема с количеством запросов - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь выполнить запрос к таблице (Приложения), я использую ApplicantId, чтобы узнать, получил ли человек уже твердое предложение (значение «Истина» в столбце «Фирма»).Каждому заявителю разрешается только 1 фирменное заявление.

public void EditApplication(Application application)
{
        Application app = GetOneApplication(application.ApplicationId);
        var Count = 0;

        IQueryable<Application> _firms;
            _firms = from Application
                     in _context.Application
                     where Application.ApplicantId == app.ApplicantId
                     where Application.Firm == true
                     select Application;
        Count = _firms.Count();
        if (Count < 1)
        {
            app.Firm = application.Firm;
            _context.SaveChanges();
        }
        else
        {

        }
}

Ожидаемый результат - ничего не предпринимать, если пользователь, уже имеющий фирменное приложение, пытается получить другое фирменное приложение.

1 Ответ

0 голосов
/ 06 февраля 2019

Это способ подсчета связанных объектов без их загрузки.Это очень эффективно.

  var myApp = context.Application.Find(app.ApplicationId);
  var firmsCount = context.Entry(myApp).Collection(x => x.Firms).Query().Count();
  if(firmsCount == 0) {
        //Add a firm to the application
   }

Или это даже лучше, когда вам даже не нужно их считать, вы просто проверяете наличие связанных записей.

  var myApp = context.Application.Find(app.ApplicationId);
  var firms = context.Entry(myApp).Collection(x => x.Firms).Query().Any();
  if(firms == false) {
        //Add a firm to the application
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...