C # - SaveChanges () не обновляет базу данных - PullRequest
0 голосов
/ 23 декабря 2018

Я перепробовал много решений, найденных в Stackoverflow, но ни одно из них не сработало.У меня есть локальная база данных, связанная с EF Designer.

Я использую Entity Framework для создания строк и сохранения их в базе данных.Это работает, так как database.SaveChanges(); возвращает 1 (не ноль).Затем я зацикливаюсь на строках базы данных и вижу, что данные хорошо сохранены.

Тем не менее, когда я закрываю свое консольное приложение и обновляю базу данных, я не могу найти только что добавленные значения и строкиЯ сгенерировал.

Работая над этой проблемой в течение нескольких часов, просматривал Интернет, но ни один из ответов не помог мне.

Я уже пытался сделать database.User.Attach() и EntityState.Modified, но они этого не сделалиработа.

Я даже пытался переместить свой код в другой класс, но он не работал.

public static void AddClient(String firstName, String lastName, int phoneNumber, String email, String wishlist)
{
    using (DatabaseEntity database = new DatabaseEntity())
    {
        database.User.Add(new User() {
                First_Name = firstName,
                Last_Name = lastName,
                Phone_Number = phoneNumber,
                Email = email,
                Wishlist = wishlist
            });

        database.SaveChanges();
    }
}

Я ожидал, что данные будут сохранены в базе данных после закрытия приложения, ноэто не так.

1 Ответ

0 голосов
/ 23 декабря 2018

Я нашел решение.

Когда Visual Studio использует локальные базы данных, при каждой отладке она копирует базы данных и работает с скопированными.

Итак, мне пришлось добавить новое соединение в обозревателе серверов, которое предназначалось для my_project_path/bin/debug/database.mdf

Затем мне пришлось отредактировать одно из его свойств, которое было Copy to Output Directory.Его новое значение теперь Copy if Newer, и теперь мои данные хорошо сохраняются в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...