none
Entity Klassen Designer produziert Fehler RRS feed

  • Frage

  • Hallo Gemeinde,

    ich stehe jetzt vor einem Problem, das ich alleine nicht Lösen kann.

    Ich beschäftige mich grade mit dem Entity Framework und habe versucht - wie in Addison Wesley Visual C# 2010  beschrieben - mithilfe des Designers die Klassen einer für eine bestehende Datenbank (SQL-Server) erstellen zu lassen. Nachdem der Designer fertig ist, überascht er mich mit 286 Fehlern,m die alle in den automatisch erstellten Klassen liegen. Wie stellen die sich vor, das man das korrigieren soll, wo bei der Komplexität der automatisch erstellten Klassen eh keiner durchblickt. Hat der Designer einen bekannten Bug? Ich bin eh hin und hergerissen zwischen dem Konfort den das Entity-Framework bietent und sich damit Code aufzuhalsen den man kaum versteht gegen eigenen Code, der dafür mehr Arbeit macht.

    Es wird nicht viel Sinn machen hier eine Aufzählung der entstandenen Fehler zu machen, aber was habt Ihr für Erfahrungen mit dem Designer gemacht? Kommen so missratene Aktionen öfter vor?

    Noch eine Frage zum Schluss. Was passiert, wenn eine Datenbank verändert wird. Kann der Designer die Änderungen erkennen und einpflegen, oder muss man dann die automatisch erstellten Klassen manuell anpasse?

    Etwas ratlos,
    Wolfgang


    Sonntag, 6. Mai 2012 10:37

Alle Antworten

  • Hallo Wolfgang,

    meine Erfahrungen mit dem Entity Framework und dem Designer sind im großen und ganzen positiv. Hier und da kommt es mal zu Problemen, die der Designer bisher aber immer zurecht angemeckert hat.

    Der Designer erkennt und pflegt die Änderungen in der Regel selbst ein, aber es ist meist trotzdem noch Handarbeit notwendig. Das ist dem geschuldet, da er einmal generierten Code von sich aus nicht löscht. Dieses Verhalten ist meiner Ansicht nach aber durchaus verständlich und nachvollziehbar. Insgesamt musst du weniger Arbeit in deine Persistzenzschicht stecken, als wenn du deine Persitenzaufgabe alle selbst implementierst, und das Perfekte Framework gibt es halt leider immer noch nicht ;-)

    Ich hoffe ich konnte dir ein bisschen weiterhelfen.


    Viele Grüße Holger M. Rößler ---------------------------------------------------------- Kaum macht man es richtig, schon funktioniert es

    Sonntag, 6. Mai 2012 11:08
  • Hallo Holger,

    danke für Deine schnelle Antwort. Es ist halt grade als Ein/Umsteiger zu C# mit schwerpunkt Datenbankanwendungen sehr frustrierend, wenn Dinke, die man bisher aus dem FF gemacht hat plötzlich riesige Hindernisse werden. Ich könnte meine Programme natürlich wieder ganz bodenständig via SQL aufziehen, würde aber doch gerne von den schönen neuen Erleicherungen provitieren. Wenn mir allerdings der Designer eine bestehende Datenbank nicht abbilden kann, hab ich keine Wahl als mit herkömlichen Methoden vorzugehen. Anhand der schieren Menge an Fehlermeldungen ist zu sehen, das der Designer offensichtlich nicht mit meinem Datenbankdesign, oder deutschen Tabellen/Spaltenbezeichnungen zurechtkommt. Da die Programme in produktiven Einsatz verwendet werden, habe ich jetzt fast ein wenig bedenken, wenn solche Fehler bei Datenbankänderungen auftreten, die dann nicht, oder nicht zeitnah (von mir) zu fixen sind.

    Ich werd mir die Fehler mal im Detail ansehen. Vieleicht kann ich ja einen gemeinsamen Grund in der Ausgangslage feststellen.

    Gruß, Wolfgang

    Sonntag, 6. Mai 2012 12:17
  • Hi Wolfgang,
    interessant wäre zu wissen, welche besonderen Bedingungen  ei Dir zu den Problemen führen. Ich hatte bisher noch nie ähnliche Probleme. Bei mir hat der vom Designer generierte Code bisher immer sofort fehlerfrei funktioniert.
     
    --
    Viele Gruesse
    Peter
    Sonntag, 6. Mai 2012 14:43
  • Hallo Peter, hallo Holger,

    tja, es war wie es so oft ist - eigene Schuld.

    Es waren noch Codereste von früheren Versuchen im Projekt, was mir erst aufgafallen ist, nachdem ich mal konkret nach den bemängelten doppelten Deklarationen gesucht habe.

    ... Manchmal sollte man mal Pause machen, wenn man den Wald vor lauter Bäumen nicht mehr sieht.

    Aber einen großen Schmerz hab ich noch. Ich kann zwar jetzt das EF mit eigenen Abfragen verwenden, wenn ich jedoch versuche Datenquellen per Drag and Drop zu visualisieren, wie es ja in zig Tutorials und auch in frisch erstellten Testprojekten funktioniert, sagt er mir in meinem Arbeitsprojekt, das er nichts hinzufügen kann , da ihm irgend welche Verweise fehlen.  Ich kann das jetzt hier nicht nachvollziehen und muss morgen in der Arbeit noch mal wegen dem genauen Wortlaut nachschauen. Ich melde mich dann noch mal.

    Gruß
    Wolfgang

    Montag, 7. Mai 2012 17:18
  • Hallo Peter, hallo Holger,

    kleiner Nachtrag. Wenn ich jetzt in meinem Projekt versuche mit Drag and Drop von Datenquellen Ansichten zu erstellen bekomme ich die Fehlermeldung:

    "Das Steuerelement kann niacht der Entwurfsoberfläche hinzugefügt werden, oder eine Bindung an das Steuerelement ist nicht möglich, weil der Typ xxxxx.DBEntities nicht aufgelöst werden kann. Erstellen Sie das  Projekt, oder fügen Sie erforderliche Assemblyverweise hinzu.

    Ich habe Das EntytyModel auch noch mal entfernt und neu erstellt und alle Verweise mit einem Testprojekt verglichen, bei dem der Fehler nicht auftritt. Ich weiss nicht wo ich noch suchen soll. Normale Querys gegen das EF funktionieren einwandfrei.

    Gruß
    Wolfgang

    Dienstag, 8. Mai 2012 05:20
  • Hallo Wolfgang,

    anhand deiner Beschreibung nur schwer nachzuvollziehen. Was steht denn im Log drin?


    Viele Grüße Holger M. Rößler

    Dienstag, 8. Mai 2012 19:38
  • Hallo Holger,

    welches Log meinst Du?
    Im Projektordner hab ich keine Logdatei und in der Ereignisanzeige gibt es keine einschlägigen Einträge.

    Gruß
    Wolfgang

    Mittwoch, 9. Mai 2012 05:41