这里的理智检查......
这两个linq查询不应该返回相同的结果吗?
查询#1:
int stateId = 2;
var streets = from s in ctx.tblStreet
where s.State_Id == stateId
&& s.ParentStreet_Id == (int?)null
select s;
查询#2:
int stateId = 2;
int? parentStreetId = (int?)null;
var streets = from s in ctx.tblStreet
where s.State_Id == stateId
&& s.ParentStreet_Id == parentStreetId
select s;
======编辑==========
第一个linq查询产生我期望它的记录,而第二个linq查询没有。我希望他们两个都能得到相同的结果,但他们没有。
======编辑#2 ==========
tblStreet定义......
int State_Id not null
int ParentStreet_id null
======编辑#3 ==========
生成的sql对于两个查询是不同的,但我认为在这种情况下无关紧要,因为@ p1(parentStreetId)等于(int?)null。请注意,在下面的查询中,我删除了所有选择字段并用星号替换它们以缩短选择并只显示where子句。
查询#1:
SELECT * WHERE([t0]。[State_Id] = @ p0)AND([t0]。[ParentStreet_Id] IS NULL)
查询#2:
SELECT * WHERE([t0]。[State_Id] = @ p0)AND([t0]。[ParentStreet_Id] = @ p1)