Auf der Suche nach einem .Net ORM [geschlossen]

9

Ich bin auf der Suche nach einem .NET 3.5 ORM-Framework mit einer ziemlich ungewöhnlichen Reihe von Anforderungen:

  • Ich muss Tabellen zur Laufzeit mit Schemas erstellen und ändern, die von meinen Endbenutzern definiert wurden.
    (Natürlich wäre das nicht stark typisiert; ich suche dort so etwas wie eine DataTable)
  • Ich möchte auch regulär stark typisierte partielle Klassen für Zeilen in nicht-dynamischen Tabellen mit benutzerdefinierter Validierung und anderer Logik. (Wie normale ORMs)
  • Ich möchte die gesamte Datenbank (oder einige ganze Tabellen) einmal laden und während der gesamten Lebensdauer der (WinForms) GUI im Speicher behalten. (Ich habe einen geteilten SQL Server mit einer relativ langsamen Verbindung)
  • Ich möchte volle WinForms Datenbindungsunterstützung
  • Ich möchte auch reguläre LINQ-Unterstützung (wie LINQ-to-SQL) für ASP.Net auf dem freigegebenen Server (der eine schnelle Verbindung zu SQL Server hat)
  • Zusätzlich zu SQL Server möchte ich auch eine Datenbank mit einer einzelnen Datei verwenden können, die die XCopy-Bereitstellung unterstützt (ohne SQL Server auf dem Computer des Endbenutzers zu installieren). (Wahrscheinlich Access oder SQL CE)
  • Schließlich muss es frei sein (außer es ist OpenAccess)

Ich werde es wahrscheinlich selbst schreiben müssen, weil ich nicht glaube, dass es ein existierendes ORM gibt, das diese Anforderungen erfüllt.
Ich möchte das Rad jedoch nicht neu erfinden, wenn es eines gibt, daher diese Frage.

Ich verwende VS2010, aber ich weiß nicht, wann mein Webhost (LFC) auf .Net 4.0 aktualisiert wird

    
SLaks 16.04.2010, 14:33
quelle

2 Antworten

5

Ich glaube nicht, dass ein Framework das tun wird, aber Sie müssen das Rad auch nicht neu erfinden.

Sie könnten ein normales ORM wie Entities Framework, NHibernate oder Subsonic für den nicht-dynamischen Teil verwenden und ein paar Ruby-Like-Migrations-Framework für den dynamischen Teil hacken.

Es sollte einfach sein, da diese Migrationsframeworks bereits alle Methoden für die Schemaänderung auf mehrere Datenbanken verteilt haben, es ist nur eine Frage von dem Schreiben einiger Klassen, um sie freizulegen.

BEARBEITEN: Der Migrations-ähnliche Rahmen wäre dafür: "Ich muss Tabellen zur Laufzeit mit Schemas erstellen und ändern, die von meinen Endbenutzern definiert werden. (Offensichtlich wäre das nicht stark typisiert; ich suche dort so etwas wie eine DataTable) "

Mit scharfen Migrationen können Sie beispielsweise Folgendes schreiben:

%Vor%

Wie Sie sehen, verwendet es Strings, so dass Sie zur Laufzeit beliebige Tabellen erstellen können.

Prost und viel Glück,

André Carlucci

    
andrecarlucci 19.04.2010 02:26
quelle
0

Sie können sich ObjectDataBlocks ansehen, wenn Sie bereit sind, einen Provider für SqlLite zu schreiben und die Query-Klasse für die Arbeit mit LINQ     

James Westgate 06.05.2010 17:34
quelle

Tags und Links