Frage

Es gibt zahlreiche Bibliotheken, die Linq-Funktionen für die Interaktion von C#-Code mit einer MySQL-Datenbank bereitstellen.Welche davon ist auf Mono am stabilsten und benutzerfreundlichsten?

Hintergrund (meist irrelevant):Ich habe ein einfaches C#-Programm (.Net 2.0), das Werte in einer MySql-Datenbank aktualisiert.Es wird jede Nacht über einen Cronjob ausgeführt und läuft auf einem Pentium 3 450Mhz, Linux + Mono.Ich möchte es hauptsächlich als Übung mit Linq (.Net 3.5) neu schreiben (ich habe Linq noch nicht verwendet).

War es hilfreich?

Lösung

Der einzige (kostenlose) Linq-Anbieter für MySql ist DbLinq, und ich glaube, dass es noch lange nicht serienreif ist.

Es gibt auch MyDirect.Net Das ist kommerziell, aber ich habe gemischte Kritiken über seine Leistungsfähigkeit gehört.

Ich habe gelesen, dass MySql die Linq to Entities API für die 5.3-Version des .net-Connectors implementieren wird, aber ich weiß nicht, ob es dafür überhaupt einen Zeitplan gibt.Tatsächlich hat MySql über die Unterstützung von Entity Framework seit Monaten völlig geschwiegen.


Nachtrag:Die neueste Version von MySql Connector/Net 6.0 unterstützt EF gemäß den Versionshinweisen.Ich habe keine Ahnung, wie stabil/nützlich das ist, deshalb würde ich gerne von jedem hören, der es ausprobiert hat.

Andere Tipps

Entsprechend der Mono-Roadmap Ich bin nicht sicher, ob Linq für Mono verfügbar ist?

Zumindest ein Teil von Linq ist möglicherweise in der neuesten Version verfügbar, Linq to DB ist jedoch für Mono 2.4 (Februar 2009) aufgeführt.

Ich bin mir bei Mono nicht sicher, aber ich habe gerade erst angefangen, es zu verwenden Lichtgeschwindigkeit und das unterstützt LINQ-to-MySQL.

Derzeit können Sie Linq to SQL nicht verwenden. Sie könnten sich an einen Linq-MySQL-Anbieter eines Drittanbieters oder an Linq-to-Entities wenden.Linq to SQL funktioniert nur für SQL Server-Datenbanken.

LINQ to SQL ist einfach eine ORM-Schicht, die die Leistungsfähigkeit von Ausdrücken nutzt, um die Erstellung von Abfragen in Ihrem Code zu vereinfachen.

Wenn Sie nur Ad-hoc-Abfragen für Ihr Tool aufrufen, ist die Verwendung von LINQ kaum erforderlich, es fügt Ihrem Code lediglich eine zusätzliche Abstraktionsebene hinzu.

Ich habe das Tutorial unter ausprobiert http://www.primaryobjects.com/CMS/Article100.aspx.Dabei werden dblinq/dbmetal verwendet, um die Datenkontextklasse und -klassen für jede Tabelle zu generieren.

Der Code schlug beim ersten Versuch mit einer nicht behandelten Ausnahme fehl (MySql.Data.Types.MySqlConversionException:Der MySQL-Datums-/Uhrzeitwert kann nicht in „System.DateTime“ konvertiert werden.Googeln ergab, dass dies leicht gelöst werden sollte, indem "Zero datetime = true" anhängen; zur Verbindungszeichenfolge.Leider stellte sich heraus, dass dies mein Problem nicht löste.Da ich dachte, der MySQL .Net Connector sei schuld, habe ich das von dblinq generierte SQL ohne die linq2sql-Zwischenschicht mithilfe des MySQL Connectors ausgeführt.Diesmal trat keine Ausnahme auf.Tabellen ohne Datumsspalte funktionierten mit DbLinq.Nach meinem Experiment stimme ich also mit Adam überein, dass DbLinq noch lange nicht produktionsbereit ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top