Я разрабатываю приложение, которое будет иметь следующие классы:
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; }
}
И у меня будет еще 20+ классов, которые будут производными от Trigger
или Action
, так что в итоге у меня будет один Shortcut
класс, 15 Action
классы и 5 Trigger
классы.
У меня вопрос: какая ORM лучше всего подойдет для этого приложения? EF
, NH
, SubSonic
или, может быть, что-то еще (Linq2SQL
)?
Я буду периодически выпускать новые версии приложений, добавлять новые триггеры и действия (или изменять текущие триггеры / действия), поэтому мне придется также обновлять схему базы данных. Я не знаю, предоставляет ли EF
или NH
какие-либо хорошие методы для простого обновления схемы. Или, если они это сделают, есть ли учебник, как это сделать?
Я уже нашел эту статью об NH
обновлении схемы, цитата:
К счастью, NHibernate предоставляет нам возможность обновить существующую схему, то есть NHibernate создает скрипт обновления, который можно применить к базе данных.
Я так и не нашел, как на самом деле создать скрипт обновления, поэтому я не могу NH
сказать, чтобы обновить схему. Может быть, я что-то неправильно понял, просто не нашел.
Примечание: Если вы предложите EF
, подойдет ли EF
1.0? Я бы предпочел использовать более старый .NET, чем 4.0.
Примечание 2: Платформа ORM должна быть бесплатной для коммерческого использования.
Примечание 3: Я также буду использовать обфускацию кода, случайное переименование всех символов и т. Д., Поэтому ORM должен это поддерживать.