Olá André,
Veja só esse trecho de código que verifica se uma dada propriedade de uma classe, do Linq To Sql, é chave primária:
var dataContext = new DataClasses1DataContext("stringDeConexao");
if (dataContext.Mapping.GetTable(typeof (Class1)).RowType.GetDataMember(typeof (Class1).GetMember("NomeDaPropriedade")[0]).IsPrimaryKey)
Console.WriteLine("NomeDaPropriedade é chave primária");
Para esse exemplo, Class1 é uma classe definida no meu modelo do Linq To Sql.
Se respondeu não deixe de marcar, abraço!
Fred Policarpo - MCT, MCTS [Win, WPF, WF] http://twitter.com/fredpolicarpo