我在C#程序中有一些代码,我正在使用LINQ构建一个表列表:
List<string> tables =
(from tb in db.Tables.Cast<Table>()
where this.FilterTables(tb, this.Options)
select string.Format("[{0}].[{1}]", tb.Schema, tb.Name)).ToList();
我希望能够轻松地在列表中添加一个标志,指示表是否已定义主键(我们不希望排除没有主键的表,但程序需要以不同的方式处理它们)。我们提出了以下内容,因为我们希望可以工作,但没有这样的运气。请注意,在下面的代码中,“HASPRIMARYKEY”只是一个占位符,我用它来说明我们要做的事情 - 我希望已经有类似的东西,但我似乎无法找到它。 / p>
List<Tuple<string,bool>> tables =
(from tb in db.Tables.Cast<Table>()
where this.FilterTables(tb, this.Options)
select new Tuple<string, bool>
(string.Format("[{0}].[{1}]", tb.Schema, tb.Name),
tb.HASPRIMARYKEY)).ToList();
我找到了解决方案(在StackOverflow和其他地方),它们展示了如何确定主键列的名称,但这不是我们需要的。我也有SQL查询将标志返回给我,但我们只想将它添加到现有的LINQ查询。
有人可以告诉我是否有一种简单的方法可以做到这一点?
提前谢谢!