Déterminer si une table a une key primaire via LINQ

J'ai du code dans un programme C # sur lequel je travaille qui construit une list de tables en utilisant LINQ:

List<ssortingng> tables = (from tb in db.Tables.Cast<Table>() where this.FilterTables(tb, this.Options) select ssortingng.Format("[{0}].[{1}]", tb.Schema, tb.Name)).ToList(); 

J'espérais facilement append un drapeau à la list qui indique si la table a une key primaire définie (nous ne voulons pas que les tables sans keys primaires soient exclues mais le programme doit les traiter différemment). Nous sums venus avec ce qui suit comme ce que nous espérions pourrait fonctionner, mais pas une telle chance. Notez, dans le code ci-dessous, "HASPRIMARYKEY" est juste un espace réservé que j'ai créé pour illustrer ce que nous essayons de faire – j'espérais qu'il y aurait déjà quelque chose comme ça mais je n'arrive pas à le find.

 List<Tuple<ssortingng,bool>> tables = (from tb in db.Tables.Cast<Table>() where this.FilterTables(tb, this.Options) select new Tuple<ssortingng, bool> (ssortingng.Format("[{0}].[{1}]", tb.Schema, tb.Name), tb.HASPRIMARYKEY)).ToList(); 

J'ai trouvé des solutions (dans StackOverflow et ailleurs) qui montrent comment déterminer le nom de la colonne Clé primaire mais ce n'est pas ce dont nous avons besoin. J'ai aussi la requête SQL qui me returnnerait le drapeau mais nous aimerions juste l'append à la requête LINQ existante.

Quelqu'un peut-il me dire s'il y a un moyen facile de le faire?

Merci d'avance!