Базовая Entity Framework и Local Database, невозможно добавить запись

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

База данных является "Локальной базой данных", но я не делаю код в первую очередь. Он имеет две таблицы, Tab3 и Tab4. В Tab3 есть столбцы Id (уникальный, первичный ключ, Identity) и Col1 (nvarchar, разрешить нулевые значения), col2 (nvarchar, разрешить нулевые значения). Это заполнено двумя рядами. Модель EDMX и отображения выглядят хорошо для меня. Это должна быть простая настройка.

Код такой:

            using (DBMod1Entities1 context = new DBMod1Entities1())
            {
                Tab3 t3 = new Tab3();
                t3.Col1 = "e";
                t3.Col2 = "3";
                context.Tab3.Add(t3); 
                int res = context.SaveChanges();
                Debug.WriteLine("Results from SaveChanges() " + res.ToString() );
                int cnt = context.Tab3.Count();
                Debug.WriteLine("Count records " + cnt);
            }

он запускается и выводит вывод:

Results from SaveChanges() 1
Count records 3

Если я назову это:

        using (DBMod1Entities1 context = new DBMod1Entities1())
        {
            int cnt = context.Tab3.Count();
            Debug.WriteLine("Count records " + cnt);
        }

Я получаю ожидаемое:

Count records 3

Если я продолжу добавлять глупые записи, число будет расти, как и ожидалось.

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

Что я делаю неправильно?

1 ответ

Я на самом деле нашел ответ здесь: Файл базы данных.sdf не обновляется после закрытия приложения

Краткое объяснение состоит в том, что по умолчанию "Локальная база данных" копируется в папку BIN каждый раз, когда программа запускается из Visual Studio, поэтому заменяются данные предыдущего запуска. Я отключил "копирование" в свойствах и изменил свой app.config так, чтобы он указывал на базу данных, которую я хотел обновить.

Другие вопросы по тегам