Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
TutorialMan
0 / 0 / 0
Регистрация: 05.11.2019
Сообщений: 3
1

Добавление данных в БД

10.02.2020, 10:02. Просмотров 206. Ответов 3

Добрый день! Прошу помочь разобраться как одновременно занести данные в связанные таблицы. Не могу найти подробную информацию.
Как с одного запроса внести данные через EF6? Если некорректно сформулировал поправьте попробую объяснить

Есть 2 модели. Модель user содержит коллекцию телефонов.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class User
{
        public int Id { get; set; }
        public string Name { get; set; }
        public virtual ICollection<Phone> Phones { get; set; }
        public User()
        {
            Phones = new List<Phone>();
        }
}
 
public class Phone
{
        public int Id { get; set; }
        public string Title { get; set;}
        public int Number{ get; set; }
        public virtual User User { get; set; }
}
контроллер для метода Create

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
[HttpGet]
public ActionResult Create()
{
         return View();
}
 
[HttpPost]
public ActionResult Create(User user)
{
         db.Users.Add(user);
         db.SaveChange();
         return View();
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@model test.Models.User
@using (Html.BeginForm()) 
    {
        <div class="form-horizontal">
            <h4>User</h4>
 
            <div class="form-group">
                @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
                </div>
            </div>
    
            /*как мне добавить здесь поле для того что бы телефон сразу добавлялся в коллекцию к определенному 
               пользователю*/
 
            <div class="form-group">
                <div class="col-md-offset-2 col-md-10">
                    <input type="submit" value="Create" class="btn btn-default" />
                </div>
            </div>
        </div>
    }
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2020, 10:02
Ответы с готовыми решениями:

Добавление данных в бд из input, а так же добавление картинки в папку и прописка пути
Здравствуйте, код для магазина. Есть форма с определенными полями , для упрощения сделала выбор...

Создайте меню программы, состоящее из трех пунктов: удаление данных, добавление данных, просмотр данных
Создайте меню программы, состоящее из трех пунктов: удаление данных, добавление данных, просмотр...

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

Добавление данных через форму в таблицу базы данных MS SQL
Здравствуйте! Я делаю форму для добавления записи в таблицу базы данных, созданную в MS SQL...

Организовать добавление данных в файл, просмотр, поиск и очистку данных
НАписать программу. Компонентами типизированного файла являются записи, состоящие из следующих...

3
yurickas
147 / 125 / 30
Регистрация: 25.11.2015
Сообщений: 878
Завершенные тесты: 2
10.02.2020, 10:49 2
C#
1
2
3
4
5
6
7
8
public class Phone
{
        public int Id { get; set; }
        public string Title { get; set;}
        public int Number{ get; set; }
        public int UserId { get; set; }
        public virtual User User { get; set; }
}
вот так будет правильнее. И поосторожнее с virtual. Может очень сильно влиять на время выполнения запроса.

А дальше - точно так же как и есть. Номер телефона добавляется в список телефонов, следи чтобы UserId совпадал с юзером. И в представление лучше передавать не модель сущности из БД, а ее viewmodel. Вот туда ты можешь засунуть все, что хочешь, а потом в контроллере взять что надо и добавить в БД.
0
TutorialMan
0 / 0 / 0
Регистрация: 05.11.2019
Сообщений: 3
11.02.2020, 07:39  [ТС] 3
Цитата Сообщение от yurickas Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
public class Phone
{
        public int Id { get; set; }
        public string Title { get; set;}
        public int Number{ get; set; }
        public int UserId { get; set; }
        public virtual User User { get; set; }
}
вот так будет правильнее. И поосторожнее с virtual. Может очень сильно влиять на время выполнения запроса.

А дальше - точно так же как и есть. Номер телефона добавляется в список телефонов, следи чтобы UserId совпадал с юзером. И в представление лучше передавать не модель сущности из БД, а ее viewmodel. Вот туда ты можешь засунуть все, что хочешь, а потом в контроллере взять что надо и добавить в БД.
Спасибо за подсказку с UserID, но как в самом представлении отправить? Создать отдельный input? У меня отправляется пока только имя надо добавить телефон. Т.е. получается мультиформа
0
yurickas
147 / 125 / 30
Регистрация: 25.11.2015
Сообщений: 878
Завершенные тесты: 2
11.02.2020, 08:10 4
Можно мульти, можно для каждого юзера отдельную страницу сделать и там к нему телефоны добавлять.
0
11.02.2020, 08:10
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2020, 08:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ввод данных, добавление данных, получение информации из файла по заданным критериям выборки
Все привет!!!Обращаюсь к вам за помощью...никак не получается решить задачку... Суть...

Добавление данных в несколько связанных таблиц и просмотр этих данных на одной форме
Здравствуйте. Задача такая. Заполняю Персону, физическое лицо. таблица Персоны(п_код,...

Добавление данных в таблицу из полей формы access, если таких данных в таблице нет
Может быть я всех достал уже. Но к сожалению я еще только учусь, и иногда возникают проблемы. ...


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

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

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