Динамический выбор столбца из аналогичной таблицы, которая существует только в некоторых базах данных - PullRequest
0 голосов
/ 16 апреля 2019

Новый веб-API с EF Core. При переключении между базами данных для моего запроса столбец может не существовать в одной БД, но будет существовать в другой. Как я могу проверить, существует ли этот столбец при выборе моих столбцов с помощью LINQ?

Я использую EF Core для запроса таблиц. Во всех базах данных структура таблиц в основном одинакова, за исключением 1 или 2 столбцов, которые могут существовать или не существовать. Мне все еще нужно получить данные в этом столбце, если он существует, но я не уверен, как это проверить, не получив сообщение об ошибке «SqlException: Invalid column name».

return await _context.Table1.Join(_context.Table2,
                t1 => t1.col1,
                t2 => t2.col1,
                (t1, t2) => new { Table1 = t1, Table2 = t2})
                .Select(t1 => new Table1
                {
                    Column1 = t1.Table1.col1,
                    ...
                    ColumnMayNotExist = t1.Table1.ColumnMayNotExist ?? null
                })
                .ToListAsync();

Если столбец не существует, я просто хочу вернуть ноль для этого столбца.

Я скажу, что у меня нет доступа / не просто добавить этот столбец в текущие структуры таблиц.

...