2012-11-14 6 views
6

próbuję dodać entity-ram do konsoli aplikacji: naciśnięciu "Dodaj nową pozycję" i enter image description hereJak dodać entity-ram do konsoli aplikacji (obrazy są w zestawie)

następnie enter image description here

następnie

enter image description here

enter image description here

enter image description here

enter image description here

potem dodałem kod:

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) 
      { 

      } 
     } 
    } 

To daje żadnego błędu, ale nie widzę żadnych zmian w bazie danych. Opisałem ten problem lepiej here

+4

Skąd wiadomo, że nie popełnia błędu, jeśli połykasz wyjątek? –

+1

Umieściłem tam punkt przerwania –

+1

Powinieneś pozwolić na błąd, dopóki nie będziesz pewny, że działa. Jeśli masz 'try/catch', to tylko dowiesz się o wyjątku w bloku catch. Jeśli w ogóle go nie masz, ale debugujesz, zamiast tego dowiesz się o tym na linii, która uległa erozji, dzięki czemu możesz zobaczyć, co jest z nim nie tak. (Istnieją opcje w VS, aby zmienić to zachowanie, ale to jest domyślne) – Bobson

Odpowiedz

3

Zrobiłem to samo, co zrobiłeś, aby skonfigurować model EF. Twój plik database.mdf maustawiony na Copy always, co oznacza, że ​​za każdym razem, gdy klikniesz F5 (kompilacja lub debugowanie aplikacji) plik zostanie zastąpiony przez pusty w projekcie.

Zmiana pliku Copy to Output Directory w oknie Właściwości pliku mdf powinna rozwiązać problem.

Jeśli używasz Copy if newer, będziesz zachowywał wszelkie modyfikacje zawartości bazy danych, dopóki nie zmienisz samej bazy danych (mdf).

Żadna zmiana w pliku mdf nie zostanie zarejestrowana w aplikacji i prawdopodobnie spowoduje problemy z EF.

Polecam dla tego scenariusza, że ​​używasz Copy if newer i wypełniasz swoje podstawowe dane w pliku mdf, dzięki czemu będziesz mieć je zawsze dostępne.

+0

Próbowałem różnych kombinacji, a Kopiuj, jeśli też nowsze. ale kiedy zamykam połączenie z bazą danych, a następnie odświeżam ją, liczyć nadal = 1 –

+0

co masz na myśli przez odświeżenie? użyj czegoś takiego i wklej wyniki: http://pastebin.com/MdwgeHKn –

+0

Wyniki są proste. Jeśli po prostu wciskam F5 5 razy, liczę = 5., ale jeśli zamknę projekt i go otworzę, a następnie naciśnij F5, liczba będzie równa się 1. Więc myślę, że masz rację, baza danych jest zastąpiona nową. Ale jak to zatrzymać? –

Powiązane problemy