EF 5 aggiunge una importante opzione di configurazione riguardante la "traduzione" delle lambda con parametri NULL: UseCSharpNullComparisonBehavior.    
Se impostata a true, il comportamento è simile al comportamento che noi Dev siamo abituati con il valore null di C#. Ma andiamo con ordine:
  Tabella:    
Id    Name     
1    Uno     
2    NULL     
3    NULL     
4    due     
5    tre
  Codice:    
  result = db.NullableTables.Where(e => e.Name == null).Count();    
Console.WriteLine("Entries where Name=null: {0}", result);     
                
result = db.NullableTables.Where(e => e.Name != null).Count();     
Console.WriteLine("Entries where Name!=null: {0}", result);     
                
string name = null;     
result = db.NullableTables.Where(e => e.Name == name).Count();     
Console.WriteLine("Entries where Name==name & name=null: {0}", result);
  Risultato standard:    
"Entries where Name=null: 2" //corretto     
"Entries where Name!=null: 3" //corretto     
"Entries where Name=name & name=null: 0" //wrong?
  Il problema dell'ultimo risultato riguarda il metodo utilizzato da EF per convertire la lamba expression "e=>e.Name=name" in TSQL: "Where Name=@p1, @p1=null". In SQL =NULL è sempre false, al contrario del primo esempio dove EF converte la lambda in "where Name IS NULL".
  Come possiamo rendere la conversione più C# friendly? con la seguente istruzione (messa nel costruttore del nostro DbContext):    
((IObjectContextAdapter)this).ObjectContext.ContextOptions.UseCSharpNullComparisonBehavior = true;
  In questo caso, rieseguendo il codice precedente, otterremo il seguente risultato:    
"Entries where Name=null: 2" //corretto     
"Entries where Name!=null: 3" //corretto     
"Entries where Name=name & name=null: 2" //corretto?
  Da notare come questa opzione sia disabilitata di default(causa compatibilità).