Laden...

Profil von Björn

myCSharp.de - Member Mitglied seit
B
Björn
myCSharp.de - Member
18
Themen
142
Beiträge
Dabei seit
03.10.2007
Letzte Aktivität
vor 8 Jahren
Alter
40 Jahre
Beruf
FA / AE
Herkunft
Rhode
Erstellt vor 10 Jahren

Hallo,

ich stand mal vor dem selben Problem. Letztendlich habe ich mir die Daten auch über einen COM-Port geholt. Ich hatte verschieden Scanner von Honeywell, die konnte man in einen "COM-Port-Simulationsmodus" versetzen. Dies geschieht entweder per Software oder speziellen Konfigurationsbarcodes, die man abscannt.

Dann muss man nur noch abschnorcheln und auf die "Trennzeichen" warten und schon hat man seinen Code.

Sobald der Scanner im COM-Port-Modus läuft, kann man ihn natürlich nicht mehr als Tastaturersatz nutzen, sprich ein Einfügen in Excel wäre beispielsweise nicht mehr möglich.

Gruß
Björn

Erstellt vor 10 Jahren

Hallo witte,

dein Tipp hat mich weiter gebracht. Auf die Idee, "anders" herum zu denken, bin ich gar nicht gekommen.

Eine Sache fehlt noch, dennoch bin ich meinem Ziel schon etwas näher gekommen:

var items = context.Revision.GroupBy(rev => rev.TextId).Select(group => group.OrderByDescending(item => item.SaveTime).FirstOrDefault()).Include(rev => rev.Text.Sammlung).ToList();

Und schon habe ich nur die aktuellste Revision am Wickel.

Erstmal vielen Dank dafür, nun scheitere ich allerdings die Sammlung anhand einer Expression zu filtern.

Da ich da jetzt nicht weiter komme, habe ich es nun erstmal so gelöst:


// laden der aktuellsten Revisionen, doch für alle Sammlungen
context.Revision.GroupBy(rev => rev.TextId).Select(group => group.OrderByDescending(item => item.SaveTime).FirstOrDefault()).Load();

var sammlung = context.Sammlungen.Where(myExpression).Include(s => s.Text).FirstOrDefault();

Gleichzeitig habe ich das "virtual" vom Property Revision entfernt (siehe hier).

So habe ich zwar immer noch zwei Abfragen gegen die Datenbank und bei der ersten Abfrage kommen noch zu viele Daten, da ich dort (noch) nicht über die Sammlung filter, allerdings ist die Datenmenge, die ich zurück bekomme schon deutlich geringer.

Ich werde mal bei Gelegenheit über eine Anpassung an meinen Klassen Gedanken machen, die eine einfachere Selektierung ermöglichen. Zum Beispiel könnte man Redundanzen in Kauf nehmen und die Sammlungs Id bei der Revision speichern. Damit könnte ich die Datenmenge noch mal verringern.

Gruß
Björn

Erstellt vor 10 Jahren

verwendetes Datenbanksystem: ef mit sql compact

Hallo,

ich hatte bis jetzt für kleinere Sachen immer EF genutzt und ihn einfach mal laden lassen.
Nun wollte ich da ein paar Sachen optimieren, komme aber nicht weiter.

Folgende DB-Struktur (nicht in echt, gibt aber den Sinn wieder)

Sammlung 1..n -> Text 1..n -> Revision

Nun möchte ich genau eine Sammlung mit allen Texten und der aktuellsten Revision (da es recht viele sein können) laden.


var item = context.Where(item => item.Id = id).Include(s => s.Texte.Select(t => t.Revisionen));

Das funktioniert so weit, es werden aber alle Revisionen mitgeladen. An der Stelle werden sie aber nicht benötigt.

Meine Versuche bisher sahen in etwa so aus:


var item = context.Where(item => item.Id = id).Include(s => s.Texte.Select(t => t.Revisionen.OrderByDescending(rev => rev.SaveTime).First()));

Dies endete aber meist in der Fehlermeldung> Fehlermeldung:

The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties. Parametername: path

Hat vielleicht jemand eine Idee, wie ich die "dritte" Ebene gefiltert und sortiert bekomme? Ich kann die richtige Revision auch noch später laden oder meine Datenstruktur anpassen. Ich frage mich einfach nur, ob es geht und wie.

Vielen Dank

Erstellt vor 12 Jahren

Ich schließe eine Verwendung der WebBrowser-Klasse bewusst aus, da die Verbindung durch den Prozess des Internet Explorers(iexplore.exe) hergestellt werden soll und nicht durch meine Anwendung.

Warum denn?
Ich empfehle sonst immer gerne das HtmlAgilityPack

Erstellt vor 12 Jahren

Du solltest dich ein wenig in XSLT einlesen..

z.B. hier:
http://www.w3schools.com/xsl/

Erstellt vor 12 Jahren

Ich hab mir den Reflector jetzt mal angeschaut und das erste, was mir einfällt: Cool - 😄
Vielleicht kaufe ich mir das sogar, muss ich mal schauen.

JetBrains dotPeak als kostenlose Alternative zum Reflector

Erstellt vor 12 Jahren

Das mit dem Buffer ist korrekt. Nur liegt hinter der URL kein Bild! Da wird eine HTML-Seite sein, die auf ein Bild verweist / anzeigt / verlinkt. Mehr können wir dir nicht helfen.

Erstellt vor 12 Jahren

Wie wird die Datei denn überwacht?
Wenn du die Datei "öffnest" kann sie nicht verschoben / umbenannt werden.

Erstellt vor 12 Jahren

Und was sagt uns die Fehlermeldung? Das aus deinem Buffer bzw. MemoryStream kein Bild erstellt werden kann bzw. keins enthält.

ich denke auch nicht, dass es direkt unter

string sourceURL = "http://192.168.8.48/";

kein Bild gibt sondern eher eine Html Seite

Erstellt vor 12 Jahren

@Björn

Was verstehst du nicht? Ich hab mir Punkt 5 durchgelesen bevor ich gepostet hatte 😃

  1. Problem genau beschreiben - inkl. genauer Fehlermeldung - und konkrete Fragen stellen

Ich sehe keine Fehlermeldung und raten wird hier auch keiner..

10 von 142 Beiträgen