У меня довольно простая структура таблицы, как показано ниже, и проблема звучит странно для меня. Хотя я решил обойти это, но хотел бы получить мнение экспертов.Entity Framework nvarchar Чувствительность к регистру по внешнему ключу
У меня есть две таблицы
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
Пожалуйста, обратите внимание, Случай пользователя здесь Caps она действительна в SQL, он принимает.
Теперь Fun часть. Я создал EDMX, .Net 4.0 и теперь я выполняю этот код.
using (EFTestEntities context = new EFTestEntities())
{
var item = context.Registrations.Where(id => id.Id == 1).FirstOrDefault();
Response.Write(item.User1.LastName);
}
Это просто срывает с Null Pointer Exception Пользователя1 Броски Null, когда я изменить значение UserName Колонка в Регистраций таблице вместо это работает.
Это Link говорит о несколько сходных
Link Это еще один аналогичный вопрос
Пожалуйста, поделитесь своими ответы почему такое поведение, Collation моей БД случай-insentivity. Вы сталкивались с подобным?
Мне нужно было сделать точку 1, так как на данный момент изменение БД невозможно – Kusek
@ladislav Спасибо за ответ. Эта информация не совсем очевидна, но, зная это, я дал понять, что нужно для решения моей проблемы. Мне пришлось бороться с очень раздробленной базой данных с разным корпусом ПК, на который я не контролировал. К счастью, я смог решить проблему, используя представление и сделав 'UPPER ([PrimaryKey])' на обеих таблицах, чтобы убедиться, что они совпали. Я бы действительно не рекомендовал этот подход, но мне пришлось это сделать, чтобы моя программа работала. – theyetiman