Не добавление данных в базу данных SQL через модель C # Entity Framework - PullRequest
0 голосов
/ 26 июня 2018

Этот вопрос можно задать, но я пока не могу найти ответ, поэтому, пожалуйста, помогите мне с этим.Я пытаюсь добавить новую строку в базу данных SQL с помощью модели EF.Есть ли что-то не так, потому что это выглядит нормально, но на самом деле ничего не вставляет в таблицу.

private void Bsubmit_Click(object sender, EventArgs e)
{
        using(var db = new Models.CompanyDBEntities())
        {
            db.Clients.Add(new Client
            {
                name = nameTB.Text,
                age = Convert.ToInt32(ageTB.Text)
            });
            db.SaveChanges();
        }
}

РЕДАКТИРОВАТЬ ** Итак, я добавляю трекер изменений, чтобы посмотреть, что происходит:

        if (db.ChangeTracker.HasChanges()){
            db.SaveChanges();
            var clients = (from c in db.Clients select c).ToList();
            string updated = "";
            foreach (var c in clients)
            {
                updated += c.Name;
            }
            MessageBox.Show(updated);
        }

В окне сообщения отображаются имена текущих клиентов в данных вместе с только что добавленным именем.Я думаю, что проблема здесь .SaveChanges () это не работает.Я еще не нашел решение.

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Попробуйте запустить Sql Server Profiler и проверить выполненный запрос на соответствие вашему утверждению, скорее всего, вы найдете ответ.

0 голосов
/ 26 июня 2018

Попробуйте добавить конструктор без параметров в свой класс и попробуйте снова, просто догадайтесь:

public class Client
{
    public Client()
    {

    }

    public string name ...
    public int age ...
    ...
}

и используйте скобки, когда новый: 'новый клиент () {'

        db.Clients.Add(new Client()
        {
            name = nameTB.Text,
            age = Convert.ToInt32(ageTB.Text)
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...