Using the Todd Smiths (+1) solution, you get all the properties (included entities, etc.). To filter out all properties other than columns, this will result in a trick:
var columnNames = db.ColumnNames<Orders>().Where(n => n.Member.GetCustomAttributes(typeof(System.Data.Linq.Mapping.ColumnAttribute), false).FirstOrDefault() != null).Select(n => n.Name);
source share