Вы можете сделать это с помощью отражения. По сути, вы перебираете свойства в своем классе DataContext . Для каждого свойства проверьте, имеет ли тип общего параметра этого свойства атрибут TableAttribute . Если это так, это свойство представляет таблицу:
using System.Reflection;
using System.Data.Linq.Mappings;
PropertyInfo[] properties = typeof(MyDataContext).GetProperties();
foreach (PropertyInfo property in properties)
{
if(property.PropertyType.IsGenericType)
{
object[] attribs = property.PropertyType.GetGenericArguments()[0].GetCustomAttributes(typeof(TableAttribute), false);
if(attribs.Length > 0)
{
Console.WriteLine(property.Name);
}
}
}