Linq для sql постоянно возвращает null

#sql #linq-to-sql

#sql #linq-to-sql

Вопрос:

У меня есть следующий SQL-запрос:

 SELECT DISTINCT 
  Participant.BackgroundTrainingID, 
  Location.TrainingSite
FROM Registration, ProgramLocation, Participant, Program, Location
WHERE ProgramLocation.LocationID = Location.LocationID 
  AND ProgramLocation.ProgramID=Registration.ProgramID 
  AND Registration.ParticipantID=Participant.ParticipantId
  

Я написал следующую ссылку на SQL, чтобы соответствовать приведенному выше запросу:

 var trainingsiteinfo = (from c in db.ProgramLocations 
                        from n in db.Registrations 
                        from l in db.Participants  
                        from h in db.Locations 
                        where c.LocationID == h.LocationID 
                          amp;amp; c.ProgramID == n.ProgramID 
                          amp;amp; n.ParticipantID == l.ParticipantId 
                        select new { 
                          h.TrainingSite, 
                          l.BackgroundTrainingID }).Distinct();
  

SQL-запрос работает нормально, но LINQ постоянно возвращает null.

Комментарии:

1. Что вы подразумеваете под «возвращает null»? Distinct не возвращает null . Однако он может возвращать пустое перечисление, и ваш код может выдать NullReferenceException . Вы имели в виду один из них?

2. Я предполагаю, что моя часть отладки была неправильной, когда я тестировал, но просто исправил спасибо за помощь

Ответ №1:

Я использую Linqer http://www.sqltolinq.com / когда у меня закончатся идеи 🙂 Кроме того, это ускоряет выполнение заданий преобразования.

Ответ №2:

Убедитесь, что контекст вашей базы данных не выходит за рамки, прежде чем вы свяжете свои результаты. Вы можете проверить это, добавив .ToList() после вашего .Distinct() , чтобы принудительно загружать результаты.

Ответ №3:

В вашем коде linq есть незакрытая скобка } в инструкции select