PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Entity Framework nur bestimmte Felder, andere ignorieren



openshinok
08.08.2014, 19:47
hallo,
ich möchte lesend auf eine Warenwirtschaft zugreifen und das mit Entity Framework realisieren. Es gibt eine Tabelle mit Aufträgen, Adressen und Positionen. Ich würde gerne eine Liste mit den Auftragspositionen generieren und die Kundenadresse dazu anzeigen.

Die Tabellen haben jeweils ca. 50 Spalten. Für meine Anforderung interessieren mich jedoch nur ca. jeweils 5 Spalten pro Tabelle. Bisher habe ich immer mit DBFirst gearbeitet. Um die Aufgabe zu lösen habe ich das auch versucht. Das funktioniert wenn ich alle Felder in mein Model übernehme.

Jetzt ist es so das man in der Warenwirtschaft eigene neue Felder anlegen kann. Es ist nicht geplant dass ich nach jeder Änderung auch mein EF aktualisiere. Es soll mit meinen wenigen Feldern einfach weiterhin funktionieren, die neue Felder kommen bei mir nicht vor. Bei DBFirst scheint es so zu sein dass das Schema beim ersten Zugriff auf die Tabelle geprüft wird oder dass er nicht damit zurecht kommt wenn ein Feld zusätzlich kommt das nicht im Model existiert.

Welchen Ansatz muss ich verwenden oder was muss ich bei DBFirst einstellen damit er die neuen Felder ignoriert bzw. keinen Fehler wirft?

fanderlf
08.08.2014, 22:15
Kannst Du Dir nicht einfach die Klassen generieren lassen per DBFirst und den Rest manuell aus den erzeugten Klassen und Mappings löschen? Bin keine Entity Framework Experte, aber soweit ich weiß funktioniert das ähnlich wie Hibernate und dort konnte man z.B. in einem XML eintragen welche Felder aus der DB auf welches Feld/Property in der Klasse gemappt werden. Ich denke wenn Du dort die Mappings rauswirfst die Dich nicht interessieren, dann müsste das eigentlich passen. Das hat dann auch noch den kleinen (guten) Nebeneffekt dass Du ein bischen mehr verstehst wie das EF arbeitet.

Christian Marquardt
09.08.2014, 06:35
In Hibernate kann man beliebige Felder mappen und auch programmatisch die gemappten Felder während des Programmlaufes festlegen.

Hier ist beschrieben, wie das mit dem EF geht

http://stackoverflow.com/questions/737520/entity-framework-ignore-columns