В настоящее время я работаю над более старым веб-сайтом MVC 5, который изначально использовал базу данных, созданную первым кодом, с Entity Framework. С тех пор он был преобразован в db-first, подвергся рефакторингу, и сейчас я удаляю старые файлы сущности c# и заменяю их структурой сущностей ADO. net.
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что при входе в систему я нажимаю следующую строку в ApplicationUserManager (которая происходит от UserManager (TUser, TKey)):
var user = await UserManager.FindByEmailAsync(model.Email);
И я получаю следующую ошибку: « Указанный член типа 'UserId' не поддерживается в LINQ to Entities. Поддерживаются только инициализаторы, элементы сущности и свойства навигации сущности. "
Наша сущность ApplicationUser, которая отражает таблицу db, использует переменную «Id» вместо «UserId». Я переопределил рассматриваемый метод, и он сработал, но я не хочу делать это всякий раз, когда нам нужно использовать UserManager. Итак, я думаю, я запутался, требует ли UserManager, чтобы переменная называлась UserId? Если нет, как я могу сказать ему, что он использует «Id»?
Не думаю, что я что-то упускаю (например, случайно добавляю UserId где-нибудь в операторе LINQ).