Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
klmnopr
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 32
1

Entity Framework. SQL Exception "Invalid column name"

22.12.2016, 21:23. Просмотров 1106. Ответов 4

Здравствуйте, мне надо создать базу данных, используя Entity Framework
В базу надо записать ключевое слово, дату и двоичный файл с данными
я делаю стратегией Code First в коде ниже у меня str_for_connect - строка подключения к бд прописана в App.config
C#
1
2
3
4
5
6
7
8
 public class DataLibrary : DbContext
    {
        public DataLibrary(string connect_str = "str_for_connect") : base(connect_str)
        {//конструктор по умолчанию
            Database.SetInitializer<DataLibrary>(null);
        }
        public DbSet<DataResults> data_results { get; set; }
    }
класс DataResults
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 public class DataResults
    {
        [Key]
        public int K_def { get; set; }
        //[Key]
        //[Column(Order = 0)]
        public string DataResults_keyword { get; set; }//ключ первичный
        public DateTime date_of_observation { get; set; } //дата наблюдения
        public byte[] Results { get; set; } //блоб
 
 
        public DataResults( int key, string key_word, DateTime dt, List<Vector_> list_of_vec)
        {
            K_def = key;
            Console.WriteLine("ТУТ");
            DataResults_keyword = key_word;
            date_of_observation = dt;
            Results = ObjectToByteArray(list_of_vec); //здесь создаём блоб из двумерного массива результатов
        }
 
 private static byte[] ObjectToByteArray(Object obj)
        {
            if (obj == null)
                return null;
            BinaryFormatter bf = new BinaryFormatter();
            MemoryStream ms = new MemoryStream();
            bf.Serialize(ms, obj);
            //Console.WriteLine("СДЕЛАЛ БЛОБ!");
            return ms.ToArray();
        }
}
возникает System.Data.Entity.Infrastructure.DbUpdateException когда добавляю запись в БД
доп сведения к этому Exception ------- "Invalid column name 'DataResults_keyword'.\r\nInvalid column name 'K_def'.\r\nInvalid column name 'K_def'."
Исключение это возникает при SaveChanges() , что ниже
C#
1
2
 resultsDB.data_results.Add(new DataResults(1, key, Date.Date, list_of_vectors)); /*{ Id = 1, date_of_observation = Date.Date, Result_key_word = key, Results = ms.ToArray() } );*/// {K_def = 1});
                resultsDB.SaveChanges();
Помогите пожалуйста, сил моих больше нет!!!
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2016, 21:23
Ответы с готовыми решениями:

При выполнении запроса "Необработанное исключение типа SqlException" - "Invalid column name"
Сам запрос рабочий в SQL, проверял какие данные вводил, но не знаю в чем...

LINQ-запрос при отношении "многие-ко-многим" (Entity Framework)
Добрый день! Второй вечер подряд не могу понять как в случае EF и Linq To...

Entity Framework: не создается промежуточная таблица для связи "многие-ко-многим"
Здравствуйте. Пытаюсь создать базу данных и наполнить ее чем то. База...

Как "подружить" Entity Framework и MS Access
Как заставить работать EF и Access? Видел датапровайдеры для Oracle, MySQL,...

Entity Framework. "Не видно" записей в таблице
Доброго дня! Пытаюсь сделать запись в таблицу, в которой один из столбцов -...

4
OwenGlendower
Супер-модератор
Эксперт .NET
10236 / 8836 / 3780
Регистрация: 17.03.2014
Сообщений: 17,773
Записей в блоге: 1
23.12.2016, 05:47 2
klmnopr, не вопроизводится оишбка. Могу только предположить что в БД в таблице нет этих полей.
1
klmnopr
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 32
23.12.2016, 10:29  [ТС] 3
А как их создать в бд в таблице?
0
OwenGlendower
Супер-модератор
Эксперт .NET
10236 / 8836 / 3780
Регистрация: 17.03.2014
Сообщений: 17,773
Записей в блоге: 1
23.12.2016, 11:29 4
Лучший ответ Сообщение было отмечено klmnopr как решение

Решение

klmnopr, в первую очередь нужно разобраться почему так получилось. Если мы используем code first, то в нём БД обычно автоматически пересоздается при изменении модели. Но у тебя почему-то не используется инициализатор БД (Database.SetInitializer<DataLibrary>(null);). Почему? Если в БД ценные данные которые нельзя терять, то тогда нужно создавать колонки вручную. Если ничего ценного там нет, то поставь инициализатор DropCreateDatabaseIfModelChanges.
1
klmnopr
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 32
23.12.2016, 19:01  [ТС] 5
Спасибо большое, все заработало!!!))))))
0
23.12.2016, 19:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2016, 19:01

"Переориентация" библиотеки Entity Framework
Есть простенькая БД SQL Server. Из нее сгенерирована библиотека Entity...

Exception в добавление через Entity Framework
Мне надо помощь. в БД и EntityFramework вообще я новичек. Я заполняю бд через...

Invalid cast exception. Linq to SQL
Добрый день, у меня возникла проблема с получением объекта из Базы Данных ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru