Search code examples
.netsql-serverentity-frameworklinqlinq-to-entities

LINQ returning Null while same query when write in SQL return result


I have two tables Survey_Response and Questions.

Columns in Survey_Response are:

ID PK
SurveyID FK
QuestionID FK
Response varchar
FilledBy FK

Columns in Questions are:

ID PK
Text varchar
QuestionType varchar
Options varchar

SQL Server query that is working fine:

select * 
from Survey_Response SR
inner join Questions q on SR.QuestionID = q.ID
where SR.SurveyID='1008'

LINQ that is returning null value is,

    ResponseList = (from r in ObjectSur.Survey_Response
                    join q in ObjectSur.Questions on r.SurveyID equals q.ID
                    where r.SurveyID.Equals(prefix)
                    select new ResponseViewModel
                    {
                        QuestionID = r.QuestionID,
                        Text = q.Text,
                        Response = r.Response,
                        FilledBy = r.FilledBy
                    }).ToList();

I think both queries are same.

Hoping for your suggestions.

Thanks


Solution

  • Both queries are not the same as you join on QuestionID in SQL then SurveyID in Linq

    ResponseList = (from r in ObjectSur.Survey_Response
                    join q in ObjectSur.Questions on r.QuestionID equals q.ID //<-- change here
                    where r.SurveyID.Equals(prefix)
                    select new ResponseViewModel
                    {
                        QuestionID = r.QuestionID,
                        Text = q.Text,
                        Response = r.Response,
                        FilledBy = r.FilledBy
                    }).ToList();