为什么这样做:
result = (from e in db.CampaignCodes where e.Code.Equals("") &&
e.Domain.Equals(null) select e).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
但不是(结果为空):
String code = "";
String domain = null;
result = (from e in db.CampaignCodes where e.Code.Equals(code) &&
e.Domain.Equals(domain) select e).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
??
扩展Iain的答案:
根据e.Domain.Equals()的重载次数,传递空字符串变量可能会遇到与传递null不同的变量吗?我不确定这里的规则是什么,但我怀疑编译器在明确给出"just"null时,可能更喜欢e.Domain.Equals(对象变量)到e.Domain.Equals(字符串变量),而不是已设置为null的字符串变量?