Laden...
K
Kostas
myCSharp.de - Member
161
Themen
597
Beiträge
Letzte Aktivität
vor 12 Jahren
Dabei seit
01.08.2005
Erstellt vor 12 Jahren

Sorry hat sich erledigt.

Ich habe das Projekt auf einem anderen PC kompilieren lassen und es hat
einwandfrei funktioniert. Danach wieder zurück auf der anderen Maschine,
die Referenz auf die DLL gelöscht und neu angelegt und jetzt funktioniert
auch auf dieser Maschine.
War wiedermal mein Fehler. Was ich falsch gemacht habe, habe ich leider nicht
bemerkt.
Sorry nochmals.
Gruß Kostas

Erstellt vor 12 Jahren

Hallo Lennart,

genau das verwundert mich. Als Referenz habe ich die DLL für FW2.0
wie zum Geier kommt er auf die Idee FW3.5 zu verwenden.

Ich werde das Projekt auf einer anderen Maschine compilieren auf dem
Firebird 2.5 nicht installiert ist.

Danke für die Info. Der Treiben für Firebird 2.5 hatte ich noch nicht installiert.
Gruß Kostas

Erstellt vor 12 Jahren

lHallo Zusammen,
ich habe ein Projekt schon länger nicht mehr anfassen müssen, und eigentlich
auch keine Änderungen eingebaut die das FW 3.5 benötigen würden.
In den Projekteigenschaften ist das Ziel FW auch 2.0 eingetragen.
Dennoch bekomme ich von VS2010 die Fehlermeldung:

Fehlermeldung:
Warnung 1 Der Primärverweis "FirebirdSql.Data.FirebirdClient, Version=2.1.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c, processorArchitecture=MSIL" konnte nicht aufgelöst werden, da er eine indirekte Abhängigkeit von der Frameworkassembly "System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" aufweist, die im derzeit als Ziel angegebenen Framework nicht aufgelöst werden konnte. ".NETFramework,Version=v2.0". Zur Beseitigung des Problems muss entweder der Verweis "FirebirdSql.Data.FirebirdClient, Version=2.1.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c, processorArchitecture=MSIL" entfernt oder die Anwendung erneut als Ziel für eine Frameworkversion verwendet werden, die "System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" enthält. FuhrparkServer

Hat jemand eine Idee wie ich das Problem beheben kann?

Drüber installiert habe ich übrigens die Zugriffskomponenten
FirebirdClient-2.0.1.exe und FirebirdClient-2.1.0.msi.

Das einzige was ich mir vorstellen kann ist, ich habe auf der gleichen Maschine
auch Firebird 2.5 installiert. Es ist also FB 1.5 und FB 2.5 auf der gleichen Maschine installiert und laufen unter einem unterschiedlichen Port und Instanzname einwandfrei parallel.

Gruß Kostas

Erstellt vor 13 Jahren

Hallo Florian,

Der OR-Mapper von Telerik ist der von ehemals Vanatec aus München.
Ich weiß das dieser Lazy loading ungeschützt. Ob er jedoch das neue Lazy<T>
unterstützt weiß ich nicht. Da ich bis jetzt noch 0,nix Erfahrung mit OR-Mappern
und dessen Vorgehensweise habe, mögen meine Fragen für Euch sich anhören
wie aus einem anderen Stern. Dafür bitte ich um Vergebung.

Gruß Kostas

Erstellt vor 13 Jahren

Ah, jetzt kommen wir der Sache schon näher.
Wenn Joins über PKs keine performance Probleme bereiten
ist das natürlich eine komplett andere Geschichte.
Ich habe nie performance tests durchgeführt. Ich bin immer schon davon
ausgegangen dass das so ist.

Wegen den Adressen, ich habe eine Tabelle Adressen in dieser alles
Adresstypen verwaltet werden. Unterschieden werden sie durch ein
Typenfeld 1=Kunde, 2=Lieferant u.s.w. Wenn z.B.: ein Kunde n Lieferadressen hat, wird
die Auflistung in einer separaten Tabelle geführt.

Gruß Kostas

Erstellt vor 13 Jahren

Hallo FZelle,

der Grund warum ich das so aufteile würde ist, ich möchte aus der DB nur die
Informationen anfordern die ich gerade benötige. Wenn ich also nur die Adresse
benötige soll auch nur die Adresse von der DB angefordert werden und nicht
das komplette Kundentabelle. Das wäre von meiner Sicht her unnötiger trafic
und Belastung des DB-Servers.
Oder ist es so gemeint, die Adressklasse ist eine 1:1 Version der Tabelle. Auf der
Form binde ich nur die Adressfelder und fordere eine Adresse an. Was würde passieren,
werden alle Felder aus der Adresstabelle angefordert oder nur die die tatsächlich mit der
aktuellen Form gebunden sind? Wenn dem so ist, würde es bedeuten das so ein OR-Mapper
zur Laufzeit analysiert welche Daten benötigt werden und würde ein optimiertes Select statement
an die DB senden.

[Edit]
Da ich dieses Verhalten von einem OR-Mapper eher nicht erwarte,
würde das bedeuten dass mein DB-Model anders aussehen muss.
Man müsste die Tabelle Kunden in mehrere Tabellen aufteilen.
Wenn ich als Beispiel nur ein Bild pro Kunde hätte, müsste ich die Bilder
in einer neuen weiteren Tabelle KundenBilder ablegen damit sie nicht automatisch
mitgeladen werden. Das wiederum bedeutet mehr Joinings was eine
gewisse Leistungsbremse bedeutet.

Sorry das ich so anstrengend bin. :-|

Gruß kostas

Erstellt vor 13 Jahren

Hallo FZelle,

danke für die Antwort.
Ich glaube ich habe das noch nicht richtig verstanden wie das gemeint ist.
Kannst du mir bitte anhand meines Beispiels mit einer Tabelle den Kunden kurz beschreiben wie man das richtig macht? Wie viele Klassen gibt es dafür
und welche ist für den User zum bearbeiten und welche Klasse für das persistieren zuständig.

[Edit]
Ich glaube ich bin jetzt dahintergekommen was du meinen könntest.
Es gibt ein File DBSchema.cs in diesem File sind 1:1 alle Tabellen
in Klassen abgebildet. Diese Klassen habe nur den Sinn das Schema
zu kontrollieren sonst nix.
Bezogen auf mein Beispiel habe ich eine oder gar zwei Klassen die auf
die gleiche Tabelle zugreifen und auch das persistieren, jede Klasse für
sich, übernehmen.
Diese Klassen kümmern sich überhaupt nicht um das Schema. Hauptsache
die Tabelle beinhaltet mindestens die Felder die in der Klasse angesprochen werden.

Ist das in etwa so?

Gruß Kostas

Erstellt vor 13 Jahren

verwendetes Datenbanksystem: <SQL-Server>

Hallo Zusammen,

ich arbeite bis jetzt noch nicht mit OR-Mappern sondern direkt über ADO.NET.
Ich habe ein Set von Methoden die mir eine Liste<T> liefern und Methoden die die Daten
in die DB zurückschreiben. Alles kein Problem wenn es wenige Tabellen sind.
Für ein neues Projekt würde ich mich mit den OR-Mapper von ehemals Vanatec heute Telerik beschäftigen. Dabei drängt sich für mich eine Grundsatzfrage auf.

Ein OR-Mapper wie der OpenAccess ORM verwaltet die Struktur der Datenbank.
Das würde bedeuten dass ein 1:1 Abbild der Metadaten im Server auch in
den DAL Objekten herrscht, damit der OR-Mapper die Struktur anpassen kann.
Ich frage mich gerade wie kann ich dennoch zwei unterschiedliche editierbare result Objekte vorhalten?

Ein denkbares Scenario währe ein Verkäufer darf neue Kunden anlegen mit
der Minimalanforderung z.B.: die Adresse und Kommunikationsdaten.
Er darf jedoch nicht dem Kunden eine Preisliste vergeben und auch keine
Rabatte einräumen. Das dürfen nur autorisierte Bürokräfte.

Aktuell mache ich das so dass ich eine Form habe für die Verwaltung welche
über eine eigene Query sich die Daten aus der Kundentabelle zieht und bearbeitet.
Eine weitere Form für den Verkäufer die ebenfalls die Daten aus einer separaten
Query bekommt. Auch die ist problemlos editier bar.

Wenn ich das mit einem OR-Mapper versuchen würde, würde vermutlich
die Klasse mit den wenigeren Feldern zur Folge haben dass die nicht enthaltenen Felder aus der Tabelle entfernt werden. Das wird höchstwahrscheinlich nicht der Fall sein, was wiederum bedeuten würde dass
mit den DAL-Objekten nicht gearbeitet wird. Konkret also würde meine Kundenklasse nicht "einfach" um die Persistenz Technik des OR-Mappers erweitert, sondern es gibt eine weitere Kunden-Klasse mit exakt den gleichen
Feldern die auch in der Datenbank sind. Ist das in etwa so?

Gruß Kostas

Erstellt vor 13 Jahren

Hallo Zusammen,

ich habe es jetzt üben die Klasse BackgroundWorker gemacht.
Der Timer stoppt sich selbst und startet danach den WorkerThread
per RunWorkerAsync();
Wenn der event RunWorkerCompleted gefeuert wird, wird der
der Timer wieder gestartet.

Die Implementierung war für mich am einfachsten und es scheint soweit
zu funktionieren. Zumindest habe ich beim Testen es nicht geschafft die
Implementierung ins schwanken zu bringen.

Dankeschön für die Hilfestellung.

Gruß Kostas

Erstellt vor 13 Jahren

Hallo Zusammen,

ich habe auf der Form einen Timer welcher periodisch
diesen Thread erzeugt. Normalerweise ist der Thread fertig bevor
der Timer erneu zuschlägt. Theoretisch ist es jedoch möglich dass der Thread
immer noch läuft. Deshalb würde ich gerne abfragen
ob der Thread immer noch läuft. Wenn ja, soll der Timer
einfach eine Periode auslassen.

 Thread newThread =
            new Thread(new ThreadStart(CheckEmails));
            newThread.Start();

Hat jemand eine Idee?

Gruß Kostas

10 von 597 Beiträgen