none
.csv Datei auslesen und per Linq to SQL in der Datenbank speichern RRS feed

  • Frage

  • Hallo ihr lieben,

    ich habe folgenden Sachverhalt: Ich habe 2 csv Dateien, aus der ich Daten extrahieren möchte und gesammelt in einer Tabelle per Linq to SQL in meine Datenbank einfügen möchte. Dabei haben die beiden Dateien unterschiedliche Spalte, also einfach zusammenkopieren ist nicht. Die Erste csv Datei beinhaltet Informationen zu Gebäuden und die zweite Informationen zu Dingen in Gebäuden, also Räume, Hörsääle, etc. Jetzt habe ich zwei Hilfsklassen Building und Inside, die jeweils eine Zeile der Dateien darstellen und von der Klasse POI (Points of Interests) erben. Die POI Klasse hat die wichtigen kombinierten Attribute der beiden Dateien und ist auch so in meiner Datenbank zu finden. Damit ich komfortabel mit Linq arbeiten kann, habe ich mit diese DataClasses von Visual Studio erstellen lassen. Was schon geht, ist die Extraktion aus der .csv Datei und das zusammenführen der Tabellen.

    Jetzt habe ich folgende Probleme:

    Wenn ich ein Building oder ein Inside erstellen möchte, gibt es ein Attribut Type und Category. Der Type ist bei Building "Building" und bei Inside steht er in der csv Datei (Hörsaal, Raum, etc). Diese Attribute habe ich in der Datenbank als eigene Tabelle mit Foreign Key ausgelagert. Jetzt stellt sich mir folgende Frage: Ich möchte anhand des Strings z.B. "Hörsaal" die Datenbank anweisen, in die Tabelle Type einen neuen Eintrag zu Hörsaal zu machen, sonfern dieser noch nicht existiert und anstatt des Strings, den Foreign Key im Objekt speichern. Ich stelle mir vor, dass das in etwa so aussehen müsste: this.typeID = Types(components[5]); oder this.Types = new Types(components[5]); (components ist die Zeile der csv Datei)

    Wobei typeID der FK in der POI Tabelle ist, Types die Tabelle der Typen und Type das Feld in der Tabelle Types ist. Außerdem soll die Category bei 5 definierten Typen gleich dem Typ sein und bei allen anderen Fällen auf "verschiedenes" gesetzt werden. Ich versteh nur einfach nicht genau, wie ich nun in meinen Klassen die Relationen komfortabel abbilden kann...

    Und dann weiß ich auch noch nicht genau, wie ich die Objekte dann in meiner Datenbank speichere :/ Im Grunde ist die Datenbank schon befüllt, die Daten können aber vorher gelöscht werden. Ziel ist es aber später mal die Daten bearbeiten zu können und bei neumaligem Einspielen der .csv Datei (sollte diese sich ändern), nur die neuen Objekte einzufügen. Das steht aber noch weit hinten an, nur falls sich dadurch grundlegende Änderungen ergeben sollten :/

    Wäre super, wenn man mir hier helfen könnte.

    Gruß

    Simon

    edit: Ist this.Types.Type = components[5]; vielleicht der richtige Ansatz? Ich kann das halt erste testen, wenn mein Write Vorgang funktioniert :/


    • Bearbeitet Simons0n Freitag, 13. Juli 2012 11:46
    Freitag, 13. Juli 2012 11:37