Ho il seguente codice:chiamata sta venendo a mancare con il parametro nullo
public static ContactEventValue GetContactEventValue(ContactEventType contactEventType, string programCode, string brandCode)
{
AdvocacyEntities ent = AdvocacyEntities.GetReadOnlyInstance();
ContactEventValue value = ent.ContactEventValues.SingleOrDefault(
x => x.ContactEventTypeID == contactEventType.ContactEventTypeID
&& x.ProgramCode == programCode && x.BrandCode == brandCode);
}
Quando chiamo con valori per brandCode e programCode, ottengo il valore atteso di nuovo dal database. Quando faccio la chiamata, ma impostando esplicitamente x.ProgramCode e x.BrandCode a null ottengo il valore di default atteso indietro dal database:
ContactEventValue value = ent.ContactEventValues.Single(
x => x.ContactEventTypeID == contactEventType.ContactEventTypeID
&& x.ProgramCode == null && x.BrandCode == null);
Tuttavia, quando chiamo il metodo con null per programCode e brandCode, io ottenere null dal database!
Ho provato a cambiare il == per .equals() per la risposta a questo problema: Nullable optional parameter
So x.BrandCode.Equals (brandCode) x.BrandCode sostituito == brandCode, e x.ProgramCode.Equals (programCode) sostituito x.ProgramCode == programCode, ma non funzionava ancora.
Ho provato anche ad usare il ?? operatore, ancora non ha funzionato.
Questo problema indica che non è stata trovata una soluzione e che è stato necessario utilizzare una stored procedure: EF 4 Query - Issue with Multiple Parameters Non voglio davvero dover andare lì.
Qualche idea?
Stiamo usando EF 5.0.0. Ho provato a impostare UseDatabaseNullSemantics su Configuration, ma UseDatabaseNullSemantics non esiste. Cerca su Google e UseDatabaseNullSemantics non sembra esistere in C#. – jgerman
Ho aggiornato la mia risposta. – devdigital
Stiamo usando .Net 4.5. Ha funzionato! Grazie mille! – jgerman