Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq查询得到的记录比sql查询多_C#_Sql Server_Entity Framework_Linq - Fatal编程技术网

C# Linq查询得到的记录比sql查询多

C# Linq查询得到的记录比sql查询多,c#,sql-server,entity-framework,linq,C#,Sql Server,Entity Framework,Linq,我有一个sql查询,它会给我大约30条记录,但同样的查询,一旦我改为linq查询,它会给我数千条记录。我找不到问题的真正根源。有人能帮我吗 sql查询 select DLId = p.Id, TopicId = st.Id, TopicName = at.Name, PrimaryOrg = bo.BusinessUnit, StatusId = ns.ID, ModifiedBy = pa.LastName from STopics st join ATopic

我有一个sql查询,它会给我大约30条记录,但同样的查询,一旦我改为linq查询,它会给我数千条记录。我找不到问题的真正根源。有人能帮我吗

sql查询

            select 
DLId = p.Id,
TopicId = st.Id,
TopicName = at.Name,
PrimaryOrg = bo.BusinessUnit,
StatusId = ns.ID,
ModifiedBy = pa.LastName 

from  STopics st
join ATopics at on st.Id = at.Id
join Students p on st.StudentId = p.Id
join Sorgs sbu on at.BUorgID = sbu.BUOrgID
join BOrgs bo on sbu.BUOrgID = bo.ID
join Status ns on st.SID = ns.ID
 join Students pa on st.NominatedBy = pa.Email
where p.IsActive = 1 and sbu.StudentID = 123 and sbu.IsActive = 1
linq查询是

(from st in Context.STopics 
join at in Context.ATopics  on st.Id equals at.Id
join p in Context.Students  on st.StudentId  equals p.Id 
join sbu in Context.Sorgs  on at.BUorgID equals sbu.BUOrgID  
join bo in Context.BOrgs  on sbu.BUOrgID equals bo.ID
join ns in Context.Status  on st.SID equals ns.ID
join pa in Context.Students  on st.NominatedBy equals pa.Email
where  p.IsActive==true && sbu.StudentID == 123 && sbu.IsActive == true
 select new result()
 {
 DLId = p.Id,
  TopicId = st.Id,
  TopicName = at.Name,
 PrimaryOrg = bo.BusinessUnit,
 StatusId = ns.ID,
 ModifiedBy  = pa.LastName
 })
你能试试这个吗,如果你想得到确切的问题,你可以得到sql查询是如何从linq语句生成的,linq查询使用了很多内部查询方法

var query= your linqquery;
string sqlQuery=query.ToString();

you can review sqlQuery.

学生参与调查,那是个打字错误。更正。检查生成的SQL将是理想的情况。或者,您可以尝试将LINQ查询更改为p.IsActive=1,而不是依赖于隐式布尔转换,就像在SQL查询中一样吗?
var query= your linqquery;
string sqlQuery=query.ToString();

you can review sqlQuery.