Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 27.03.2018
Сообщений: 218
MySQL

Заданное приведение является недопустимым EF

06.12.2022, 06:42. Показов 1544. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Когда пытаюсь получить значение из базы то получаю ошибку.
"System.Reflection.TargetInvocationExcept ion: Адресат вызова создал исключение. ---> System.InvalidCastException: Заданное приведение является недопустимым."


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        public Player GetPlayer(int accountId)
        {
            using (MySqlConnection connection = new MySqlConnection(connectionString))
            {
                connection.Open();
                try
                {
                    using (PBDBContext context = new PBDBContext(connection, false))
                    {
                        Player player = context.players.FirstOrDefault(p => p.AccountId == accountId);
                        return player;
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(ex.ToString());
                }
            }
            return null;
        }
Сама ошибка
Кликните здесь для просмотра всего текста
System.Reflection.TargetInvocationExcept ion: Адресат вызова создал исключение. ---> System.InvalidCastException: Заданное приведение является недопустимым.
в MySql.Data.MySqlClient.MySqlDataReader.G etByte(Int32 i)
в MySql.Data.EntityFramework.EFMySqlDataRe ader.GetByte(Int32 ordinal)
--- Конец трассировки внутреннего стека исключений ---
в System.RuntimeMethodHandle.InvokeMethod( Object target, Object[] arguments, Signature sig, Boolean constructor)
в System.Reflection.RuntimeMethodInfo.Unsa feInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
в System.Reflection.RuntimeMethodInfo.Invo ke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
в System.Data.Entity.Core.Common.Internal. Materialization.Shaper.ErrorHandlingValu eReader`1.GetTypedValueDefault(DbDataRea der reader, Int32 ordinal)
в System.Data.Entity.Core.Common.Internal. Materialization.Shaper.ErrorHandlingValu eReader`1.GetValue(DbDataReader reader, Int32 ordinal)
в lambda_method(Closure , Shaper )
в System.Data.Entity.Core.Common.Internal. Materialization.Shaper.HandleEntityAppen dOnly[TEntity](Func`2 constructEntityDelegate, EntityKey entityKey, EntitySet entitySet)
в lambda_method(Closure , Shaper )
в System.Data.Entity.Core.Common.Internal. Materialization.Coordinator`1.ReadNextEl ement(Shaper shaper)
в System.Data.Entity.Core.Common.Internal. Materialization.Shaper`1.SimpleEnumerato r.MoveNext()
в System.Data.Entity.Internal.LazyEnumerat or`1.MoveNext()
в System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
в System.Data.Entity.Core.Objects.ELinq.Ob jectQueryProvider.<>c__14`1.<GetElementF unction>b__14_1(IEnumerable`1 sequence)
в System.Data.Entity.Core.Objects.ELinq.Ob jectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot)
в System.Data.Entity.Core.Objects.ELinq.Ob jectQueryProvider.System.Linq.IQueryProv ider.Execute[TResult](Expression expression)
в System.Data.Entity.Internal.Linq.DbQuery Provider.Execute[TResult](Expression expression)
в System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source, Expression`1 predicate)
в Cached.Database.Dao.PlayerDao.GetPlayer( Int32 accountId)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2022, 06:42
Ответы с готовыми решениями:

Заданное приведение является недопустимым
Visual studio пишет что данное приведение является недопустимым в чем ошибка? int Number_order = datareader_main.GetInt32(1); ...

Явная загрузка и ошибка Заданное приведение является недопустимым
Приветствую, ребята. Подскажите в чем может быть ошибка. Имеется вот такая структура БД Прописываю код для каждой сущности: ...

Ошибка при создании ответов. Заданное приведение является недопустимым
Здравствуйте, подскажите, появляется такая ошибка:Заданное приведение является недопустимым. в строке a.setRight((bool)answersTable.Rows); ...

8
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
06.12.2022, 09:19
Irbos, что такое players? где его класс и контекст?
0
0 / 0 / 0
Регистрация: 27.03.2018
Сообщений: 218
06.12.2022, 15:07  [ТС]
Вот

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class PBDBContext : DbContext
    {
        ...
        public DbSet<Player> players { get; set; }
        ...
}
 
 public class Player
    {
        public int Id { get; set; }
        public int AccountId { get; set; }
        public string Name { get; set; }
        public byte ColorName { get; set; }
}
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,766
06.12.2022, 15:39
Irbos,
В контексте должно быть сопоставление свойств 'Player' полям таблицы БД (в методе инициализации контекста).

Проверьте, что все свойства класса 'Player' сопоставлены корректным (по типу) полям БД (с учётом nullable).
1
0 / 0 / 0
Регистрация: 27.03.2018
Сообщений: 218
06.12.2022, 16:53  [ТС]
В теории я понял, но всё же не до конца
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
06.12.2022, 17:05
Irbos, в бд какая структура таблицы Player - название столбцов и тип данных?
0
0 / 0 / 0
Регистрация: 27.03.2018
Сообщений: 218
06.12.2022, 17:09  [ТС]
Вот так создавал таблицу

SQL
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TABLE `players` (
  `Id` INT(11) NOT NULL,
    `AccountId` INT(11) NOT NULL,
  `Name` VARCHAR(256) NOT NULL,
  `ColorName` INT(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
ALTER TABLE `players`
  ADD PRIMARY KEY (`AccountId`);
 
ALTER TABLE `players`
  MODIFY `Id` INT(11) NOT NULL AUTO_INCREMENT;COMMIT;
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
06.12.2022, 17:15
Лучший ответ Сообщение было отмечено Irbos как решение

Решение

Irbos, измените в классе Player
C#
1
public byte ColorName { get; set; }
на
C#
1
public int ColorName { get; set; }
2
0 / 0 / 0
Регистрация: 27.03.2018
Сообщений: 218
06.12.2022, 17:33  [ТС]
Спасибо, блин моя невнимательность
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2022, 17:33
Помогаю со студенческими работами здесь

System.InvalidCastException: "Заданное приведение является недопустимым."
Помогите пожалуйста понять что ему не нравится, я вообще никаких идей не имею что не так. Всегда применял этот способ и всё отлично...

System.InvalidCastException: "Заданное приведение является недопустимым."
Вот так выглядит класс. Вот так выглядит таблица в БД. class Para { public int Id { get; set; } ...

System.InvalidCastException: "Заданное приведение является недопустимым."
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using...

Извлечь данные из ячейки таблицы: "заданное приведение является недопустимым"
Ребят помогите решить ошибку, необходимо извлечь данные из ячейки таблицы- при компиляции выдается ошибка : заданное приведение является...

Заданное приведение не является допустимым
Здравствуйте, не могу найти ошибку, помогите пожалуйста( Собственно, есть есть база с двумя таблицами (users(id,username,password,sgroup)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru