Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
1 / 1 / 0
Регистрация: 02.10.2012
Сообщений: 110
.NET Core

Как заполнить базу данных, миграция и т.д (EF)?

14.10.2022, 13:24. Показов 2742. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
добрый день есть таблицы(сущности), основная ворд, которая ссылается на другие
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public class Word
    {
 
        [Key]
        public int Id { get; set; }
        public WordEng WordEng { get; set; }
        public Translate WordRu { get; set; }
        public List<CheckWord> CheckWords { get; set; }
 
        private static int Count = 0;
 
        public Word(){ 
            //Id = ++Count; 
        }
}
хочется при самом первом создании заполнить ее, вродебы называется миграцией. Неважно, слова ображуются динамичсеки:
C#
1
CreateList createList = new CreateList();
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    public AplicationContext(DbContextOptions<AplicationContext> options):base(options)
    {
        Database.EnsureDeleted();///пока временно если что-то заполнит
        Database.EnsureCreated();
    }
 
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        CreateList createList = new CreateList();
        //modelBuilder.Entity<User>().HasData(new User { Id=1, Login="praj", Password="ifkjvs1",Email="prajdziswet@mail.ru"});
        if (createList != null && createList.Words.Count > 0)
        {
            foreach (Word word in createList.Words)
            {
                modelBuilder.Entity<Word>().HasData(word);
            }
        }
    }
при создании возникает две ошибки
1) Не заполнен Id
2) Если заполняю Id (через статическое поле), при добавлении самого слова Word выдает исключение, что CheckWord уже существует и не может добавить за него word.
Как заполнить при создании бд?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.10.2022, 13:24
Ответы с готовыми решениями:

Миграция в базу данных черех powershell
Здравствуйте. Хочу создать миграцию в базу данных, используя команду powershell: dotnet ef migrations add _initial. Но почему-то...

как заполнить базу данных
Здравствуйте Я установил mysql server, через workbench создал таблицы и связи между ними Как теперь работать с базой? Как открыть её на...

Как заполнить базу данных на Mac
Всем привет! Исходные данные Есть много файлов с таблицами. Эти таблицы нужно перенести в БД на SQLite. Работаю под маком, что...

40
1 / 1 / 0
Регистрация: 02.10.2012
Сообщений: 110
27.10.2022, 10:00  [ТС]
Студворк — интернет-сервис помощи студентам
1) Должен быть уникальный ID. Eсли сущность содержит ссылки, то сложно отследить, что вы меняете ід а не ид ссылки (по хорошему WordRu, CheckWords должен был сделать наоборот ссылки на ворд... а так база содержит излишнее данные -что плохо)
Как у меня ворд
C#
1
2
3
4
5
6
7
8
9
    public class Word
    {
 
        [Key]
        public int Id { get; set; } 
        public WordEng WordEng { get; set; }
        public Translate WordRu { get; set; }
        public List<CheckWord> CheckWords { get; set; }
}
2) отнощение один ко многим, должен содержать обратный ключ и добовлятся сначала главный (один), а потом многие

Вот как в результате получилось сделать (повторюсь "масло-маленное"):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        CreateList createList = new CreateList();
        int wordId = 0, EngId = 0, RuId = 0, CheckId = 0;
 
        foreach (Word word in createList.Words)
        {
            word.Id = ++wordId;
            modelBuilder.Entity<Word>().HasData(new Word() { Id = wordId });
            WordEng Eng=word.WordEng;
            modelBuilder.Entity<WordEng>().HasData(new WordEng(){Id= ++EngId,WordId = wordId,HtmlEng = Eng.HtmlEng,Level = Eng.Level,link = Eng.link,obj = Eng.obj,Word = Eng.Word});
            Translate Ru = word.WordRu;
            modelBuilder.Entity<Translate>().HasData(new Translate() { Id = ++RuId, HtmlRu = Ru.HtmlRu, WordEng = Ru.WordEng, WordId = wordId });
            foreach (CheckWord checkWord in word.CheckWords)
            {
                modelBuilder.Entity<CheckWord>().HasData(new CheckWord(){Id= ++CheckId,WordId = wordId,EngPhrase = checkWord.EngPhrase,RuPhrase = checkWord.RuPhrase});
            }
        }
 
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.10.2022, 10:00

Как правильно заполнить базу данных
Столкнулся с проблемой. Когда заполняю базу из списка который состоит из 10 элементов, почему-то потом в базе оказывается их не 10. а 75...

БД для чайников как заполнить базу данных
Здравствуйте, я решил освоить базы данных и попутно использовать какуюнибудь базу данных для своей работы. В общем я устанавливал ms...

Как заполнить базу данных большим количеством тестовых записей?
В книге по MySQL написано: &quot;В базу данных поместим следующее количество автоматически сгенерированных записей..&quot; и там числа от...

можете объяснить как создать и заполнить базу данных по данной теме?
4. Аэрофлот Схема БД состоит из четырех отношений: Company (ID_comp, name) Trip(trip_no, ID_comp, plane, town_from, town_to,...

Заполнить базу данных
Создать таблицу данных не проблема, если уже хоть что-то понимаешь в этом. Другое дело надо заполнить ее таблицами с текстом, если текста...


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

Или воспользуйтесь поиском по форуму:
41
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru