SubSonic Включить таблицы Альтернатива исключить - PullRequest
1 голос
/ 16 июля 2009

SubSonic великолепен и помогает мне кодировать намного быстрее, но теперь я столкнулся с чем-то, что, как мне кажется, помогло бы куче программистов.

Я программирую на огромную базу данных, но мне нужно всего около 6 или 7 таблиц из 50 или около того таблиц. Исключение в файле Settings.ttinclude требует от меня ввода других ненужных таблиц. Я хотел бы иметь строковый массив IncludeTables, который ускоряет ввод таблиц, необходимых для приложения.

Надеюсь, у команды проекта SubSonic уже есть патч / исправление для этого.

[Изменено] Я вижу, что v2.2 имеет includeTableList и целый список других параметров конфигурации. Где я могу установить их в v3.0.0.2 ???

Ответы [ 3 ]

2 голосов
/ 16 июля 2009

Sestocker - Спасибо за это ... Я верю, что это сработает, но у меня есть решение, которое я хочу:

В файле Settings.ttinclude у меня есть переменная IncludeTables ниже переменной ExcludeTables:

string[] ExcludeTables = new string[]{
....
};

string[] IncludeTables = new string[]{
....
};

Затем я обновил ActiveRecord.tt и Context.tt, изменив код, который проверяет таблицы исключений:

if(!ExludeTables.Contains(tbl.Name))
....

к этому

if(IncludeTables.Contains(tbl.Name))
....

, поэтому я убедился, что любая ссылка на "! ExcludeTables" была изменена на "IncludeTables".

Он породил нужные мне классы, но я еще не тестировал.

Я посмотрю, смогу ли я немного поработать с шаблонами t4, чтобы код работал как с «Исключить», так и «Включить», и посмотрю, смогу ли я опубликовать его позже сегодня или завтра.

2 голосов
/ 16 июля 2009

Я не эксперт SubSonic, но если вы используете шаблоны ActiveRecord t4, вы можете просто отредактировать сам шаблон.

Посмотрите в SQLServer.ttinclude:

const string TABLE_SQL=@"SELECT *
    FROM  INFORMATION_SCHEMA.TABLES";

Просто добавьте предложение WHERE к приведенному выше, чтобы включить только те таблицы, которые вам нужны.

1 голос
/ 19 июля 2009

Цель иметь шаблоны T4 в том, чтобы вы могли сделать это для себя - не просить нас исправить это (не то, чтобы мы не возражали против этого - но вам легче). В этом случае у большинства людей есть только несколько таблиц, которые они хотят исключить.

Тем не менее, в следующем издании я сделаю метод более универсальным, чтобы вы могли изменить его по мере необходимости (вместо проверки массива - я должен спросить "ShouldGenerate ()").

...