Ho una struttura di tabella abbastanza semplice come di seguito e mi sembra strano. Anche se ho scelto di aggirare il problema ma vorrei prendere l'opinione degli esperti.Entity Framework nvarchar Sensibilità del caso su chiave esterna
ho due tabelle
Users
UserName nvarchar(250) Primary Key
FirstName nvarchar(50)
LastName nvarchar(50)
Registrations
Id BigInt PrimaryKey
User nvarchar(250) - Foreign to Users Table
Date - DateTime
Data I have is as follows.
Users
UserName FirstName LastName
a Small A
b Small B
Registrations
Id User Date
1 A 1/1/12
2 B 1/1/12
Si prega di notare caso di parcheggi qui è Caps esso è valido per SQL, accetta.
Ora la parte divertente. Ho generato EDMX, .Net 4.0 e ora eseguo questo codice.
using (EFTestEntities context = new EFTestEntities())
{
var item = context.Registrations.Where(id => id.Id == 1).FirstOrDefault();
Response.Write(item.User1.LastName);
}
It Just rompe con Null Pointer Exception Utente1 Lanci Null, quando ho cambiare il valore di UserName Colonna nella tabella iscrizioni per un invece di A funziona.
Questo Link parla in qualche modo simile
Questo Link un altro problema simile
Si prega di condividere le tue risposte perché è questo comportamento, fascicolazione del mio DB è case-Coefficiente di disturbo. Hai affrontato simili?
Ho dovuto eseguire il punto 1 poiché a questo punto la modifica del DB non è possibile – Kusek
@ladislav Grazie per la risposta. Questa informazione non è prontamente ovvia, ma sapendo questo mi ha dato l'intuizione necessaria per risolvere il mio problema. Ho dovuto confrontarmi con un database legacy molto sfacciato con diversi casi di PK del caso, su cui non avevo alcun controllo. Fortunatamente sono stato in grado di risolvere il problema utilizzando una vista e facendo 'UPPER ([PrimaryKey])' su entrambe le tabelle offensive per assicurarmi che corrispondessero. Non consiglierei assolutamente questo approccio, ma dovevo farlo per far funzionare il mio programma. – theyetiman