Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 2 / 1
Регистрация: 06.10.2015
Сообщений: 91

Настройка подключения к БД

14.10.2016, 19:01. Показов 1455. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, при добавлении в бд в таблицы новых записей хорошо работает
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<onliner forum>());
НО не создает если удалить БД
Для создания работает
Database.SetInitializer(new DropCreateDatabaseAlways<onlinerforum>() );

Подскажите как избавиться от этой проблемы, лучше как настроить через миграции. Ели базы нет - то создавать и потом заполнять по логике, если есть - то просто добавлять.

Добавлено через 2 минуты
под "хорошо работает" я имею ввиду отсутствие исключений при обращениях.
Так при DropCreateDatabaseIfModelChanges<onliner forum>()
если базу вручную удалить то при обращении к ней(поиск происходит) выдает исключение.
При DropCreateDatabaseAlways<onlinerforum>() работает - просто создает новую независимо есть ли старая. Но мне такой функционал не нужен.

Добавлено через 45 секунд
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//Database.SetInitializer(new DropCreateDatabaseIfModelChanges<OnlinerForum>());  //БД, если существует - то будет дописываться
            //Database.SetInitializer(new DropCreateDatabaseAlways<OnlinerForum>());
            using (OnlinerForum db = new OnlinerForum())
            {
                
                HtmAgilityParser parser = new HtmAgilityParser();
                List<NodeOfParse> Notes = parser.ParseHtmlOnliner(parseInfo);
                List<Message> messages = new List<Message>();
                User user = new User();                            
                user = db.Users.FirstOrDefaultAsync(u => u.Id == parseInfo.UserID || u.Name == parseInfo.Name).Result; //нахожу есть ли пользователь в базе                
                if (Notes.Count != 0)
                {
                    for (int currMsg = 0; currMsg < Notes.Count; currMsg++)
                    {
                        Message message = new Message()
                        {
                            Id = Notes[currMsg].IdMessage,
                            DateTime = Notes[currMsg].Date,
                            UserId = Notes[currMsg].UserId,
                            Text = Notes[currMsg].Message
                        };
                        messages.Add(message);
                    }
                    if (user == null) //нет БД Users
                    {
                        user = db.Users.Create();
                        user.Messages = new List<Message>();
                        user.Id = Notes[0].UserId;
                        user.Name = parseInfo.Name;
                        db.Users.Add(user);
                    }
                    else
                    {
                        if (user.Id == 0) //нет пользователя
                        {
                            user.Messages = messages;
                            user.Id = Notes[0].UserId;
                            user.Name = parseInfo.Name;
                            db.Users.Add(user);
                        }
                        else
                        {
                            foreach (var message in messages)
                            {
                                if (user.Messages.All(m => m.Id != message.Id))
                                {
                                    user.Messages.Add(message);
                                }
                            }
                            db.Users.Attach(user);
                        }
                    }                    
                    db.SaveChanges();
                }
            }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.10.2016, 19:01
Ответы с готовыми решениями:

Настройка сетевого подключения по умолчанию в rashbian для подключения к сети интернет
Всем здравствуйте! На orange PI zero поднял ОС rashbian с необходимым ПО. Всё работает как надо. Но есть проблемка! Нужно...

настройка подключения
Добрый день, у меня такая проблема. В квартире один lan кабель от интернета, но мне нужно чтобы компьютер подключался по lan кабелю, а...

Настройка подключения
Новичок в Linux и хотел бы спросить совет !На виртуалке установлены две машины (на обоих стоит centos 7)!Никаких настроек ещё не делал! ...

6
134 / 130 / 107
Регистрация: 17.03.2009
Сообщений: 364
18.10.2016, 13:55
вот же есть CreateDatabaseIfNotExists, инициализатор, используемый по умолчанию. Он не удаляет автоматчески базу данных и данные, а в случае изменения структуры моделей и контекста данных выбрасывает исключение.
0
2 / 2 / 1
Регистрация: 06.10.2015
Сообщений: 91
18.10.2016, 14:01  [ТС]
mishau, я решил проблему. Тут по умолчанию VS 2105 при подходе CodeFirst использует локацию SQLLoacalDB, она даже в Manegement Studio не видна, база физически создается в моих документах на системном диске.

Вот с ней и происходит непонятное поведение. Перешел(вручную сам меняю конекшн стринг на .\SQLEXPRESS - тоже локальная бд, но уже "орректная", если можно так сказать и сней работает все как по инструкции
0
134 / 130 / 107
Регистрация: 17.03.2009
Сообщений: 364
18.10.2016, 16:18
Она должна быть видна под именем сервера (localdb)\v11.0. И все-таки надо выяснить, что не так с localdb.
0
2 / 2 / 1
Регистрация: 06.10.2015
Сообщений: 91
18.10.2016, 16:50  [ТС]
mishau, не должна, у меня 2015 студия, v 11 насколько я знаю - старая.
0
134 / 130 / 107
Регистрация: 17.03.2009
Сообщений: 364
18.10.2016, 18:44
А так?

(localdb)\MSSQLLocalDB
0
2 / 2 / 1
Регистрация: 06.10.2015
Сообщений: 91
18.10.2016, 19:39  [ТС]
mishau, Я про это и писал проблему. Так работает но некорректно

Добавлено через 54 секунды
.\SQLEXPRESS вот так самое то))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.10.2016, 19:39
Помогаю со студенческими работами здесь

Настройка подключения
Народ, помогите пожалуйста настроить схему подключения. Схема такова: роутер(подключенный по adsl) -&gt; свич -&gt; apple capsule(грубо...

Настройка подключения в Windows 8
Установил сборку Windows 8 Build 7989 x64 by PainteR ver.2 при попытке создать сетевое подключение выдаёт ошибку и перезагружается. Не могу...

Настройка подключения Asus F5
Ноут отказывается идти в инет. Локальную подключил, вроде работает. Никаких неисправностей при диагностике подключения не обнаруживаецца,...

Настройка подключения к интернет
Возникла острая необходимость отключить роутер и подключить компьютер через провод, проведённый провайдером (роутер юзал для wi-fi...

Настройка сетевого подключения
Значит так, Windows ХР, ввожу ip адреса и DNS'ы нажимаю кнопку ОК, а при повторном входе в свойства АЙ-пи сбрасывает настройки на...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru