Answer-ID
  • Întrebări
  • Tag-uri
  • Categorii
Notificări
Recompense
Înregistrare
După înregistrare, veți primi notificări despre răspunsurile și comentariile la întrebările DVS.
Logare
Dacă aveţi deja un cont, autentificaţi-vă pentru a verifica notificările noi.
Aici vor fi recompensele pentru întrebările, răspunsurile și comentariile adăugate sau modificate.
Mai mult
Sursă
Editează
 Biri
Biri

Actualizați schema de bază de date în Entity Framework

Am instalat VS SP1 și am jucat în jurul cu Entity Framework.

Am creat o schemă dintr-o bază de date existentă și am încercat câteva operații de bază.

Majoritatea au mers bine, cu excepția actualizării schemelor bazei de date.

Am schimbat baza de date în mod fundamental:

  • a adăugat un nou tabel
  • a șters o tabelă
  • a adăugat o coloană nouă într-un tabel existent
  • a șters o coloană dintr-un tabel existent
  • a schimbat tipul unei coloane existente

Primele trei au mers bine, dar schimbarea de tip și ștergerea coloanei nu au urmat modificările bazei de date.

Există vreo modalitate de a face este de lucru de la designer? Sau nu este acceptat în acest moment? Nu am gasit nici un material inca, dar inca caut.

8 2008-08-15T11:15:05+00:00 6
Programare
.net
schema
entity-framework
Comentarii la întrebare (0)
Darren Kopp
15 august 2008 в 8:18
2008-08-15T20:18:22+00:00
Mai mult
Sursă
Editează
#12441

Mi-ar ghici ca, eventual, acestea nu se intampla deoarece ar rupe constructia pentru codul existent, dar asta e doar o presupunere din partea mea.

Iată logica mea:

În primul rând, EF ar trebui să fie mai mult de 1: 1 de cartografiere a tablelor, deci este destul de posibil că doar pentru că ștergeți o coloană din tabelul A nu înseamnă că pentru acea entitate nu ar trebui să existe o descriere a proprietății. S-ar putea să ghiciți acea proprietate la alt tabel.

În al doilea rând, schimbarea unui tip ar putea doar să sparge clădirile. este singura rațiune acolo.

0
0
Comentarii (0)
Chris Patterson
19 august 2008 в 7:55
2008-08-19T07:55:57+00:00
Mai mult
Sursă
Editează
#15668

Din demonstrațiile designerului pe care l-am văzut, nu este un instrument impecabil. Este un produs de versiunea 1.0, deci este obligat să aibă câteva puncte de durere. Tipul schimbării este unul dintre ele. Din vizionarea designerului și a generării de coduri, mi-am dat seama că s-ar rupe fie la momentul compilării (nu este probabil), fie la timpul de execuție (când modelul este de fapt executat).

0
0
Comentarii (0)
vintana
17 septembrie 2008 в 11:40
2008-09-17T11:40:16+00:00
Mai mult
Sursă
Editează
#80854

Trebuie să ștergeți singură coloana de la designer sau din fișierul XML.

0
0
Comentarii (0)
scotta
24 septembrie 2008 в 10:34
2008-09-24T22:34:18+00:00
Mai mult
Sursă
Editează
#128955

Am constatat că, în general, există încă câteva bug-uri cu funcția "Update Model from Database".

Cheile sunt ucigașul pentru mine - nu am încă să fac modificări pe care le fac la o relație străină-cheie sau să adaug o cheie primară la o masă și să am funcția updater să funcționeze corect (prin faptul că va da o eroare de compilare a generat codul) - dar pentru a rezolva problema este o chestiune simplă de a șterge modelul și de a reimporta (durează doar un minut) - aceasta este mai puțin decât evidentă evident, dar nu am avut niciodată un eșec de importul "proaspăt".

0
0
Comentarii (0)
Utilizator anonim
4 august 2009 в 3:41
2009-08-04T03:41:53+00:00
Mai mult
Sursă
Editează
#1225137

Așa cum am menționat mai sus, puteți șterge doar coloana de la designer. În ceea ce privește modificarea tipului de date al coloanei: reîmprospătați modelul din baza de date, apoi mergeți la mapările tabelului și selectați coloana pe care ați schimbat-o în DB. valorile din dreapta reprezintă modelul dvs., destul de ciudat că nu se actualizează automat, ci doar selectați coloana din dreapta și accesați proprietățile și modificați tipul de date acolo. Ar trebui să devină un meniu derulant.

Noroc.

Rumen

0
0
Comentarii (0)
fyasar
10 octombrie 2009 в 1:00
2009-10-10T01:00:40+00:00
Mai mult
Sursă
Editează
#1546021

Am construit o aplicație similară cu cea solicitată. Dar soluția mea a fost greu. Voi încerca să-i spun;

  1. You have to create your own database management clases and these objects will be responsible for create, update database schema (I created manually that).

  2. I saw good article and source code on ADO.NET Team blog then you can also download EDMTools from this blog, it open source. And you can also implement model generation and update routines from that into your project.

  3. Finally when the your schema changed you should recreate and bind your model and rebuild your data assembly during runtime. But you have to know most important think, you should tie your data model assembly to your project with loosely coupled (check out this post)

    Other way, you should wait for EF 4.0 release (it CTP 1 now), they announced that they will provide create,delete,update DatabaseScript functions.

Blocare bună

0
0
Comentarii (0)
Konrad Brodzik
13 februarie 2013 в 6:03
2013-02-13T18:03:25+00:00
Mai mult
Sursă
Editează
#14855337

Modul în care fac acest lucru (și fac toate lucrurile pe care le menționați, plus redenumirea coloanelor) este prin modificarea bazei de date și regenerarea codului EF folosind EF Code First.

Nu fac modificări cu privire la codul EF de primă clasă pentru bine sau pentru rău (inclusiv coloane necunoscute pentru relații) pentru a ușura procesul.

Nici un generator de schemă de designer sau ORM nu va putea modifica baza de date de producție dacă are date constrânse în ea. De aceea ar trebui să începeți întotdeauna să verificați dacă modificările dvs. în DB sunt fezabile, să le încercați pe o bază de date de dezvoltare și apoi să vă adaptați codul pentru a reflecta modificările.

0
0
Comentarii (0)
Adăugati o întrebare
Categorii
Toate
Tehnologii
Cultură
Viață / Artă
Stiință
Profesii
Afaceri
ID
KO
RU
© Answer-ID 2021
Sursă
https://stackoverflow.com
în cadrul licenței cc by-sa 3.0 cu atribuire