Mam dość prostą strukturę tabeli, jak poniżej i wydaje dziwne dźwięki do mnie. Chociaż zdecydowałem się obejść to, ale chciałbym wziąć opinie ekspertów.Entity Framework nvarchar Case Sensitivity na klucz obcy
Mam dwie tabele
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
Uwaga przypadek Użytkownika tutaj jest Caps Jest to ważne w SQL, to akceptuje.
Teraz zabawa. Wygenerowałem EDMX, .Net 4.0 i teraz wykonuję ten kod.
using (EFTestEntities context = new EFTestEntities())
{
var item = context.Registrations.Where(id => id.Id == 1).FirstOrDefault();
Response.Write(item.User1.LastName);
}
To tylko zrywa z Null Pointer Exception User1 Zgłasza Null, Kiedy zmienić wartość nazwa_użytkownika kolumna w tabeli Rejestracje do zamiast to działa.
This Link opowiada o nieco podobny
Ten Link inny podobny problem
Proszę podzielić swoje odpowiedzi, dlaczego jest to zachowanie, Układanie mojego DB jest wielkość insentivity. Czy spotkałeś się z podobnym?
Musiałem zrobić punkt 1, ponieważ w tym miejscu zmiana DB nie jest możliwa – Kusek
@ladislav Dzięki za odpowiedź. Ta informacja nie jest oczywista, ale świadomość tego dostarczyła mi wiedzy potrzebnej do rozwiązania mojego problemu. Musiałem zmagać się z bardzo łuszczącą się starszą bazą danych z różnymi przypadkami PK, na które nie miałem wpływu. Na szczęście udało mi się rozwiązać problem, używając widoku i wykonując 'UPPER ([PrimaryKey])' na obu obrażających tabelach, aby upewnić się, że są dopasowane. Naprawdę nie poleciłbym tego podejścia, ale musiałem to zrobić, aby mój program działał. – theyetiman