Linq很奇怪或者我很蠢?

Nie*_*sma 2 c# linq-to-sql

为什么这样做:

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)

??

Rob*_*Rob 6

扩展Iain的答案:

根据e.Domain.Equals()的重载次数,传递空字符串变量可能会遇到与传递null不同的变量吗?我不确定这里的规则是什么,但我怀疑编译器在明确给出"just"null时,可能更喜欢e.Domain.Equals(对象变量)到e.Domain.Equals(字符串变量),而不是已设置为null的字符串变量?