从仅在某些数据库中存在的相似表中动态选择列

时间:2019-04-16 16:14:16

标签: c# .net entity-framework .net-core entity-framework-core

带有EF Core的新Web API。在我查询的数据库之间切换时,一个数据库中可能不存在一列,而另一数据库中将存在一列。使用LINQ选择列时,如何检查该列是否存在?

我正在使用EF Core查询表。在所有数据库中,表结构几乎相同,除了可能存在或不存在的1或2列。我仍然需要获取该列中的数据(如果存在),但是我不确定如何在不出现“ SqlException:无效列名”错误的情况下进行检查。

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();

如果该列不存在,我只想为该列返回null。

我会说我没有访问权限/仅将此列添加到当前表结构并不容易。

0 个答案:

没有答案