Как добавить entity-framework в консольное приложение (включены изображения)

Я пытаюсь добавить Entity Framework в консольное приложение: я нажимаю «Добавить новый элемент» и

тогда

тогда

Затем я добавил код:

    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Database1Entities db = new Database1Entities();
                db.AddToTableTest(new TableTest { name = "name" });
                db.SaveChanges();

                int count = db.TableTest.Count();
                int ui = 9 + 0;
            }
            catch (Exception e)
            {

            }
        }
    }

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

 Paul T.14 нояб. 2012 г., 19:39
Я поставил точку останова там
 Salvador Sarpi14 нояб. 2012 г., 20:04
Ваш файл базы данных mdf был скопирован в выходной каталог? возможно, его заменяют каждый раз, когда вы нажимаете F5. всегда ли int возвращает 1?
 D Stanley14 нояб. 2012 г., 19:37
Откуда ты знаешь, что это не дает ошибки, если ты проглатываешь Исключение?
 Bobson14 нояб. 2012 г., 19:49
Вы должны допустить ошибку до тех пор, пока не убедитесь, что она работает. Если у тебя естьtry / catch, тогда вы узнаете только об исключении в блоке catch. Если у вас его вообще нет, но вы отлаживаете, вы вместо этого узнаете об этом в строке с ошибкой, чтобы вы могли увидеть, что с ней не так. (В VS есть опции для изменения этого поведения, но это по умолчанию)

Ответы на вопрос(1)

Решение Вопроса

database.mdf файл имеетCopy to Output Directory установлен вCopy alwaysЭто означает, что каждый раз, когда вы нажимаете F5 (сборка или отладка приложения), файл заменяется пустым в вашем проекте.

ИзменениеCopy to Output Directory в окне свойств файла mdf следует решить вашу проблему.

Если вы используетеCopy if newer Вы будете сохранять любые изменения содержимого базы данных, пока не отредактируете саму базу данных (mdf).

С участиемDo not copy любое изменение в файле mdf не отразится на вашем приложении и, вероятно, вызовет проблемы с EF.

Я рекомендую для этого сценария, который вы используетеCopy if newer и заполните свои основные данные в файле mdf, чтобы они всегда были доступны.

 Salvador Sarpi14 нояб. 2012 г., 21:52
Просто используйте «Не копировать» для файла mdf, но имейте это в виду, когда вносите изменения в mdf. Вы также можете изменить строку подключения, чтобы пути достигали файла mdf в папке вашего проекта, а не в папке bin. что-то вроде «../../database.mdf» вместо «database.mdf» в вашем app.config
 Paul T.15 нояб. 2012 г., 15:31
Я ошибся, ваше решение работает, спасибо!
 Salvador Sarpi14 нояб. 2012 г., 21:00
что вы подразумеваете под обновлением? пожалуйста, используйте что-то вроде этого и вставьте свои результаты:pastebin.com/MdwgeHKn
 Paul T.14 нояб. 2012 г., 21:41
Результаты просты. Если я просто нажму F5 5 раз, count = 5. Но если я закрою проект и открою его, а затем нажму F5, count будет = 1. Поэтому я думаю, что вы правы, база данных заменена новой. Но как это остановить?
 Paul T.14 нояб. 2012 г., 20:49
Я пробовал разные комбинации, и копировать, если новее тоже. но когда я закрываю соединение с базой данных и затем обновляю его, считать все равно = 1

Ваш ответ на вопрос