Я разрабатываю приложение, которое будет иметь эти классы:
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 создает обновление script, которое может быть применено к базе данных.
Я никогда не обнаружил, как реально генерировать обновление script, поэтому я не могу сказать NH
обновить схему. Возможно, я что-то неправильно понял, я просто не нашел его.
Примечание: Если вы предлагаете EF
, то будет EF
1.0 подходящим? Я бы предпочел использовать более старую .NET, чем 4.0.
Примечание 2: Структура ORM должна быть бесплатной для коммерческого использования.
Примечание 3: Я также буду использовать обфускацию кода, случайное переименование всех символов и т.д., поэтому ORM должен поддерживать это.