Problem mit einfügen in *.dbml

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von iCanNonIc.

    Problem mit einfügen in *.dbml

    Hallo,

    Kurze Frage zur Entwicklungsumgebung, hat allerdings auch etwas mit Datenbanken zu tun, daher hoffentlich in der richtigen rubrik.
    Wie hier(Screenshot) beschrieben, kann ich "Elemente" aus Datenbanken in eine *.dbml Datei droppen. Ich habe mittlerweile auch schon mehrere Videos gefunden, um zu sehen was andere exakt machen, und sie können tatsächlich immer eine Tabelle nehmen und da rein droppen, bei mir tut sich allerdings nix, was mich irgendwie frustet :S. Es kommt auch keinerlei Fehler oder etwas, es passiert nur einfach eben garnix... Der Cursor ändert sich auch nicht auf dieses kleine [+]-symbol, wie er dass tut, wenn ich eine standard-klasse da rein ziehe (aus dem Werkzeugkasten).
    Versucht habe ich es mit .sdf und .mdf.
    Gibts neben Drag&Drop auch eine andere Möglichkeit, die Tabellen da einzufügen?
    Die Datenbank selber scheint zu funktionieren, ich kann sowohl Werte als auch das Schema editieren.
    Meine IDE ist Visual Studio 2012 Ultimate.

    mfG

    Edit:
    Kurzen Thread gefunden, wo grundsätzlich eine ähnliche Problemstellung vorliegt, das Problem bleibt bestehen. --->

    Edit2:
    In Visual Studio 2010 ist es das gleiche Problem, weiß jemand, welches entsprechende Tool ich neu installieren könnte?
    Laut diesem Thread hat jemand ein ähnliches Problem, ich habs versucht, so wie er zu lösen, ändert aber nichts. --->

    Bilder
    • Bug.JPG

      90,73 kB, 1.027×613, 130 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „iCanNonIc“ ()

    Da ich richtig einsteigen möchte:
    Welche Anleitungen würdest du empfehlen?
    @ErfinderDesRades

    PS: Da ich das Problem nicht lösen konnte, werde ich von nun an wenn möglich die Visual Studio Version 2013 Ultimate verwenden.
    Ich hoffe, das das entsprechende Problem in der neuen Entwicklungsumgebung dann gelöst ist. Ich markiere dies als erledigt, sobald der Fall.
    ich hab einfach rumprobiert. Ist ja auch nicht wesentlich anners als mittm DatasetDesigner. Aber du kannst auch mal gugge, ob du mit theFiloes Vorschlägen weiter kommst.
    Seine Vorschläge sind hier: MySQL Datenbank Anbindung

    Rückmeldung bezüglich seiner Tuts wäre nett, weil dann würde ich die in meine Tipp-Link-Liste aufnehmen
    Okay zunächst die Einschräunkung, dass ich bei meiner Datenbank SQL Compact Edition verwende, die beiden Tutorials von @thefiloe beziehen sich ja beide auf MySQL. Insofern kann ich jetzt nicht sagen, obs da irgendwelche inkopatibiläten gibt.
    Sobald allerdings die "Datenverbindug steht", funktioniert das ganz gut. Meine Ansprüche sind ja nicht so speziell, dass ich mir die Mühe machen muss, einen eigenen Mapper und Persister für jedes Objekt zu schreiben und eine eigene Klasse für den Datenzugriff. Von daher kommt mir der Designer zum Glück entgegen.
    Was es allerdings mit sämtlichen Elementen auf sich hat, wird jetzt leider nicht so richtig erlärt, sondern halt nur wie man damit arbeitet. Ich werde mir infolge dessen mal ein Fachbuch mit einem expliziten Teil für ADO.net zurate ziehen.

    Für den Anfang/Einstieg und die Übersicht, was man da eigentlich tut und wie arbeitserleichternd das - meiner meinung nach - ist, sind die Tutorials beide ganz gut.
    Ich sehe einen leichten Vorsprung für den codeproject-Artikel, da dieser etwas einfacher und bodenständiger gehalten ist, und nicht nur das Data-Binding behandelt.

    Wie auch immer, ich persöhnlich finde beide ganz okay, werd mir aber noch mehr Übersicht in enspr Literatur verschaffen.
    Was mich v.a. interessiert ist, ob du anhand dieser Tuts Anwendungen entwickeln kannst, die verknüpfte Tabellen in geeigneter Weise präsentieren, und gleichzeitig noch die basic CRUD - Funktionalität gewährleisten.
    Denn wenn du nicht auf jeden beliebigen Datensatz fehlerfreies Anzeigen, Ändern, Zufügen, Löschen verfügbar hast, dann würde ich sagen, beherrschst du die Datenverarbeitungs-Technologie noch nicht hinreichend, sodass du ernsthaft beginnen kannst, was damit zu entwickeln.

    Oder annersrum: Kannst du mit dem aus den Tuts erlernten die Sample-Solutions aus vier Views-Videos nachbauen?
    Weil die 4Views-Samples sind ja (voll crud-) Funktionalitäts-Grund-Bausteine, aus denen man eine Datenverarbeitung komponieren kann.
    Also mittlerweile kann ich ziemlich genau das nachbauen, was in den VierView exemplarisch dargestellt ist, wobei ich sagen muss, wenn ich das etwas üben würde, bräuchte das vielleicht höchstens 10-15 Minuten, soetwas zu entwickeln.
    Die Auto-code-generierung greift einem schon unter die Arme und das war ja eigentlich auch mein Ziel, muss ich ja ehrlich gestehen! 8| Gerade das Datenbankskript. Vorher hab ich übrigens immer den DBGenerator genutzt, sollte gerade dir bekannt vorkommen :D, mit dem ich übrigens sehr zufrieden war.
    Oh - super!!!

    Kannst du das vlt. zippen und anhängen? Täte mich sehr interessieren, die 4 Views (oder was ähnliches) in Linq2Sql nachgebaut zu sehen, oder gar in EntityFramework.

    Viele Progger äussern sich ja abfällig über die Dataset-Technologie, als veraltet.
    Aber niemand unternimmt es mal, ein Gegen-Modell-Beispiel in "modernerer" Technologie vorzulegen, dass man mal konkret vergleichen kann.

    Ich hab dabei meist das Gefühl, sie könnens gar nicht.
    Normal stört mich "große Klappe - nichts dahinter" nicht weiter, aber in diesem Fall ist solch doch ärgerlich, denn die abfälligen Kommentare bleiben ja dennoch bestehen, und mindern evtl. das Interesse an meinen Lösungen.
    Ich würde ja selbst auch modernere Lösungen empfehlen, wenn sie mir nur bekannt wären. 8|

    PS: sry wg. so spät - mein INet war 3 Wochen down.
    Aber daran siehste mein Interesse, dassichs trotzdem noch poste
    Also dein Model umzusetzten und damit so zu arbeiten kriegt man ja hin (siehe Anleitung).
    Was ich jetzt noch nicht durchschaut habe, ist das Databinding mit dem Model (Seit EF5 oder EF6 ist das meineswissens die Basis-Klasse DBContext) und ich habs noch nicht so ganz verstanden, wie man die an das DataGridView bindet).
    Ich sitzte derzeit leider an einem Macbook, aber ich versuche demnächst etwas hier hoch zu laden.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „iCanNonIc“ ()

    Ich glaube wir haben hier unterschiedliche Vorstellungen von dem Modell.

    Ich verstehe unter dem Modell ein Modell, mit dem ich objektorientiert arbeiten und mir sicher sein kann, dass die Daten auch persistent sind.
    Mit objektorientiert arbeiten meine ich, dass ich das Objekt so behandeln kann, als befände es sich nur als ein Object im Arbeitsspeicher.
    Das Modell mit seinen Sub-Routinen speichert sich dann selber, sofern dazu von mir aufgefordert.

    Was hinter diesem Thema (jetzt nicht speziell die Vier-Views, sondern von Anfang an) steht, ist der Gedanke, die Persistenz von Objekten zu serialisieren und sich möglichst wenig mit der Sicherheit, Performance, Validierung und Organisation der zu serialisierenden Objekten zu beschäftigen.
    Ideal dafür wäre es natürlich, wenn diese ganzen Hintergrundoperationen, die dazu nötig sind, in eine Art Compiler oder Builder mit einfließen zu lassen, der den entsprechenden Code generiert. Und dafür ist mir ADO.net bisher am meisten entgegen gekommen.

    Ich muss gestehen, ich habe bis jetzt noch keinen Weg gefunden, genau das Binding zu bewerkstelligen, was du bei den Vier-Views angewendet hast.
    Jedoch war das in der von mir gesucht (oben genannten) Problemstellung auch nicht gefordert.
    Ich könnte dir ein Programm schreiben, dass sich mit diesem Model (in diesem Kontext die grafische Darstellung des zugrunde liegenden Beispielproblems Category, Deliverer und Article) befasst und einen Anweder in einer Firma unterstützen soll, seinen Beruf auszuüben.
    Allerdings würde ich - oder besser gesagt müsste ich derzeit - ohne DataGridViews und mit manuellem Binding auskommen.

    Mit anderen Worten

    ErfinderDesRades schrieb:

    Als Gegen-Entwurf lasse ich natürlich nur lauffähige Anwendungen gelten, die auch ungefähr dasselbe leisten, wie meine Beispiel-Projekte.

    mit eigenem Binding.
    Ich frag lieber vorher ob du das damit gemeint hast ;) In lauffähige Anwendungen gelten, die auch ungefähr dasselbe leisten, wie meine Beispiel-Projekte kann man jetzt alles mögliche rein interpretieren.
    Ich finde, in lauffähige Anwendungen gelten, die auch ungefähr dasselbe leisten, wie meine Beispiel-Projekte kann man garnix reininterpretieren, sondern - nimm den m:n - View: da will ich links alle Kategorien sehen und rechts zu jeder Kategorie alle deren Artikel, inklusive der Lieferanten der Artikel.
    Und das will ich nicht nur sehen, sondern da muss man auch Kategorien und Artikel anlegen können, ändern oder löschen (CRUD), und das Gesummse muss natürlich abspeicherbar sein.
    Okay, das geht nicht so ohne weiteres, da würde ich dann ein eigenes Control für entwickeln, aber das wäre unnötig, weils das bessere DGV ja schon gibt. CRUD an sich geht schon, allerdings - wie gesagt - nur im Code, bzw manuell gebindet.
    Mit DBContext soll das Binden ja (angeblich) gehen, ich versuchs mal weiter...
    Hast du dich denn früher mal mit dem Problem befasst? Also das CRUD Binding eines .edmx models an eine DGV?

    PS:

    ErfinderDesRades schrieb:

    Viele Progger äussern sich ja abfällig über die Dataset-Technologie, als veraltet.
    Aber niemand unternimmt es mal, ein Gegen-Modell-Beispiel in "modernerer" Technologie vorzulegen, dass man mal konkret vergleichen kann.
    Weil enweder das Dataset halt in dem Punkt immer noch besser ist, oder ich auf dieses Zauberwort nicht komme.

    iCanNonIc schrieb:

    Hast du dich denn früher mal mit dem Problem befasst? Also das CRUD Binding eines .edmx models an eine DGV?
    Ja, aber hat immer rumgezickt.
    Also Binding alles fabelhaft, aber dann beim Abspeichern, wenn du bestimmte Zeilen gelöscht und wieder zugefügt, und auch noch untergeordnete Zeilen zugefügt hattest - dann Datenbankfehler, so Sachen.

    Für Wpf hab ich auch ein 4Views-Tut produziert, wo auch ein L2S-Beispiel dabei ist. Aber Wpf ist ganz anners als WinForms - nur das Rumzicken ist dasselbe, weil hat ja nix mitte Oberfläche zu tun, sondern weil der L2S-Query-Generator iwie zu blöde ist.
    Wpf-4-Views
    Ja, gut zu wissen, dass das nicht nur bei mir so ist. :)
    Ich dachte ja, dass wenn ein DataSet kompatibel ist, dann das (hattest du ja weiter oben erwähnt) neuere ADO.net auch kompatibel...
    War wohl nix.

    Mir ist aber ein bisschen mehr aufgefallen, Entities anzeigen scheint wohl zu gehen, solange keine Referenzen (Schlüsselspalten zu anderen Entities) mit angezeigt werden.
    Die Methode, erst die spalten zu laden, sobald sie vom Benutzer angezeigt werden könnten, ist zwar performant(er), allerdings ist durch end using der Container bereits disposed, beim scrollen nach rechts auf die Referenz kracht's dann.
    Beim Speichern sowieso... Ich weiß nicht ob das die gleiche Fehlerquelle ist, aber das Binding stelle ich mir so vor, dass der Entities-Container, der ja die Datenbankverbindung aufbaut, nicht komplett disposed werden sollte, sondern nur die Verbindung zur DB geschlossen wird, die Umgebung aber trotzdem gleich bleibt, denn ansonsten ist ja gar kein binding möglich...
    Auf jeden Fall ist es denke ich mal etwas, was nicht kurz mal schnell erledigt werden kann... Gute Lösung habe ich bisjetzt eigentlich noch gar keine gefunden.