Ich bin eine Anwendung zu entwickeln, die diese Klassen haben:Welches ORM zu verwenden?
class Shortcut
{
public string Name { get; }
public IList<Trigger> Triggers { get; }
public IList<Action> Actions { get; }
}
class Trigger
{
public string Name { get; }
}
class Action
{
public string Name { get; }
}
Und ich werde 20+ mehr Klassen, die von Trigger
oder Action
, so dass am Ende zufließen wird, werde ich eine Shortcut
Klasse, 15 Action
- abgeleitete Klassen und 5 Trigger
- abgeleitete Klassen.
Meine Frage ist, welche ORM passt am besten für diese Anwendung?EF
, NH
, SubSonic
oder vielleicht noch etwas anderes (Linq2SQL
)?
Ich werde in regelmäßigen Abständen neue Anwendungsversionen freigeben, weitere Trigger und Aktionen hinzufügen (oder aktuelle Trigger/Aktionen ändern), so dass ich auch das Datenbankschema aktualisieren muss. Ich weiß nicht, ob EF
oder NH
irgendwelche guten Methoden zur einfachen Aktualisierung des Schemas bietet. Oder wenn sie es tun, gibt es eine Anleitung, wie man das macht?
ich schon this Artikel über NH
Schema Aktualisierung gefunden, unter Angabe:
Zum Glück NHibernate uns die Möglichkeit bietet, ein vorhandenes Schema zu aktualisieren, dh NHibernate ein Update-Skript erstellt, das die auf die angewendet werden kann, Datenbank.
Ich habe nie gefunden, wie man das Update-Skript tatsächlich erzeugt, so kann ich NH
nicht sagen, um das Schema zu aktualisieren. Vielleicht habe ich etwas falsch verstanden, ich habe es einfach nicht gefunden.
Hinweis: Wenn Sie EF
vorschlagen, ist EF
1.0 auch geeignet? Ich würde lieber etwas älteres .NET als 4.0 verwenden.
Hinweis 2: Das ORM-Framework sollte für kommerzielle Zwecke frei sein.
Hinweis 3: Ich werde auch Code-Verschleierung verwenden, alle Symbole zufällig umbenennen usw. ... so sollte ORM dies unterstützen.
Sind Sie an die Verwendung einer relationalen Datenbank gebunden? Sie könnten überlegen, ob eine Objekt- oder Dokumentendatenbank für Ihre Arbeit besser geeignet wäre. –
Wie aktualisiere ich ein Skript? 'Neues SchemaUpdate (_cfg) .Execute (wahr, falsch);' – dotjoe
@Erik Forbes: Ich würde ODBMS verwenden, wenn es irgendeine verwendbare freie Objektdatenbank geben würde (etwas wie SQLite für RDBMS). Kennst du irgendwelche? – Paya