В зависимости от того, как перекрестный браузер необходимо быть и цель выполнения вывода, Вы могли бы изучить элемент Холста и связанный JavaScript.
Я предполагаю, что вы имеете в виду использование LINQ to SQL, и в этом случае посмотрите на свойство DataContext.Mapping . Это то, что я использую.
Если вы не имеете в виду этого, возможно, вы сможете подробнее рассказать о том, чего вы пытаетесь достичь?
Используйте метод ExecuteQuery в контексте данных и выполните этот сценарий SQL:
var columnNames = ctx.ExecuteQuery<string>
("SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('your table name');");
Это даст вам IEnumerable
со всеми именами столбцов в этой таблице, которые вы указали.
Конечно, при желании и необходимости вы всегда можете получить дополнительную информацию (например, тип данных, максимальную длину) из sys.columns
представление каталога в SQL Server.
Если вы говорите о получении столбцов для сопоставленной таблицы, см. этот ответ , чтобы узнать, как чтобы перейти к атрибутам столбца. Оттуда вы можете получить названия столбцов, типы и т. Д.
Я наткнулся на этот вопрос, ища то же самое, и не увидел действительно хороший ответ здесь. Это то, что я придумал. Просто загрузите его в LINQPad в режиме выражения C #.
from t in typeof(UserQuery).GetProperties()
where t.Name == "Customers"
from c in t.GetValue(this,null).GetType().GetGenericArguments()[0].GetFields()
select c.Name
Измените по своему усмотрению.
Возможно, уже слишком поздно, но я решил эту проблему с помощью этого кода
var db = new DataContex();
var columnNames = db.Mapping.MappingSource
.GetModel(typeof(DataContex))
.GetMetaType(typeof(_tablename))
.DataMembers;