Как явно включить сопоставленные таблицы с PetaPoco
Я хочу использовать PetaPoco на столе, который имеет около 600 таблиц, но я хочу отобразить только несколько таблиц.
Есть ли способ явно указать таблицы, которые я хочу отображать? Конфиг в шаблоне t4 (tables["tablename"].Ignore = true
) не очень подходит для этого подхода?
3 ответа
Решение
В итоге я сделал это так:
Tables tables = LoadTables();
foreach(Table t in tables)
{
if(!t.Name.Contains("all_user_group"))
{
t.Ignore = true;
}
}
Я сделал нечто подобное
var tablesToLoad= new string[] {
"TableOne",
"TableTwo",
"ViewOne",
"Etc" };
var tables = LoadTables();
foreach(var t in tables)
{
if(!tablesToLoad.Contains(t.Name))
{
t.Ignore = true;
}
}
Чтобы избежать заполнения шаблона T4 игнорируемыми назначениями, я создал нового пользователя базы данных, который имел доступ только к нужным мне таблицам.
Затем я связал шаблон T4 с пользователем базы данных, и PetaPoco увидел только нужные мне таблицы.