2014-11-19 3 views
0

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

База данных - это «Локальная база данных», но я не делаю код в первую очередь. Он имеет две таблицы: Tab3 и Tab4. Tab3 имеет столбцы Id (уникальный, первичный ключ, Identity) и Col1 (nvarchar, allow nulls), col2 (nvarchar, allow nulls). Это заполнено двумя рядами. Модель 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 

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

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

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

+0

Чтобы быть понятным, мой вопрос предполагает, что моя проблема заключалась в использовании работы Entity Frame, в то время как реальная проблема заключалась в обработке «локальной базы данных», как указано в http://stackoverflow.com/questions/6565600/ базы данных файла SDF-ли-не-обновления-после-закрытия-приложения – rwg

ответ

0

Я на самом деле нашел ответ здесь: Database file .sdf does not update after closing application

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

 Смежные вопросы

  • Нет связанных вопросов^_^