где условие не поддерживает более 1 условия - PullRequest
0 голосов
/ 29 апреля 2019

В приведенном ниже коде я хочу использовать более одного условия, но он не поддерживает, он принимает только одно условие p.score<=35 он отображает только все записи, но p.score<=50 запись, относящаяся к этому условию, не отображается, как я могу решитьэтот выпуск.

cs=(from e in db.Students
  join p in db.Marks
  on e.S_ID equals p.S_ID
  join t in db.Details
  on p.School_ID equals t.School_ID
  where  p.Score<=35 && p.Score <=50
  select new MyModel
  {
      S_Name = e.S_Name,
      Score = (int)p.Score,
      Status = p.Status,
      Address_City = t.Address_City,
      Email_ID = t.Email_ID,
      Accomplishments = t.Accomplishments
  }).ToList();

Ответы [ 3 ]

0 голосов
/ 29 апреля 2019

Изменить p.Score <= 35 && p.Score <= 50 на (p.Score> = 35 && p.Score <= 50). </p>

cs=(from e in db.Students
join p in db.Marks
on e.S_ID equals p.S_ID
join t in db.Details
on p.School_ID equals t.School_ID
where  (p.Score>=35 && p.Score <=50)
select new MyModel
{
  S_Name = e.S_Name,
  Score = (int)p.Score,
  Status = p.Status,
  Address_City = t.Address_City,
  Email_ID = t.Email_ID,
  Accomplishments = t.Accomplishments
}).ToList();
0 голосов
/ 29 апреля 2019

Рассмотрим список марок [15, 30, 35, 45, 50]

Теперь согласно условию, которое вы применили в своем коде, where p.Score<=35 && p.Score <=50

вы получите [15,30,35], потому что эти элементы удовлетворяют обоим условиям (<=35 && <=50)

вы не получите [45,50], поскольку они удовлетворяют только одному условию (<=50)

Поскольку вы применили условие && между обоими условиями, отметки должны пройти оба условия для отображения. Пройти только одно условие недостаточно.

Следовательно, вам нужно изменить предложение where.

  1. Если вы хотите отобразить все те метки, которые меньше или равны 50, вам нужно написать where p.Score <=50
  2. Если вы хотите отобразить только те метки, которые меньше или равны 50, но больше или равны 35, вам нужно написать where p.Score>=35 && p.Score <=50
0 голосов
/ 29 апреля 2019
p.Score<=35 && p.Score <=50

То же, что и просто p.Score<=35.

Я полагаю, вы действительно хотите

p.Score >= 35 && p.Score <= 50

т.е. оценка от 35 до 50?

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