| 

.NET C# Java Javascript Exception

1
Ich habe eine Tabelle mit einer ID-Column (Typ: GUID). Beim Eintragen von Werten wird autm eine neue Guid vergeben.

Für den Import von Altdaten, möchte ich diese Guid aber selber vergeben, damit die Verweise dann später bei den Relations angepasst werden können.

Gibt es einen Weg, wie ich programmatisch dass Erzeugen der Guid "abschalten" kann bzw. dass ich vor/nach dem Speichern, den Wert abändern kann?

Ist nur für den Import der Altdaten gedacht - nicht für das "normale" erstellen der Werte
13.06.2013
MyKey0815 1,6k 2 9
1
Nur ein spontaner Gedanke...
Wieso verwendest Du für Altdatenimport und Main-Application dasselbe Modell? Dieses Kompromiss-Modell würde ich nicht eingehen. Import klingt für mich mehr nach SQL-Skripten als nach Entity Framework. Gibts Gründe für den Kompromissansatz?
ffordermaier 13.06.2013
1
Hast Du einen bestimmten Grund, warum Du die Altdaten via EF importieren möchtest und nicht direkt auf DB-Ebene?
Das fühlt sich nämlich für mich konzeptionell ziemlich verquer an: aus Altdaten erst Geschäftsobjekte machen, in denen eben gerade keine DB-Spezifika sichtbar sein sollen, um diese dann von EF gleich wieder auf die DB mappen zu lassen und dabei in die Interna eingreifen in einer Weise, die mich vermuten läßt, daß Du anschließend sowieso noch auf DB-Ebene Sachen geradeziehen willst.
Matthias Hlawatsch 13.06.2013
@Florian: Du warst schneller... "Zwei Dumme, ein Gedanke" hätte meine Mutter dazu gesagt ;-)
Matthias Hlawatsch 13.06.2013
@Matthias: Meine auch :-)
ffordermaier 13.06.2013
2 Antworten
1
Jup, Abschalten!
Entweder per Attribute
[DatabaseGenerated(DatabaseGeneratedOption.None)] 
public int Id{ get; set; }

oder im Code
modelBuilder
.Entity<User>()
.Property(r => r.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
14.06.2013
judgy 3,0k 1 1 8
0
Danke für die Rückmeldung. Ich möchte das ef deshalb nutzen, weil ich schon ein paar Logikabläufe geschrieben habe, die beim migrieren auch berücksichtigt werden sollen
13.06.2013
MyKey0815 1,6k 2 9

Stelle deine Ef-Frage jetzt!