Позвольте мне перейти к этому курсу действий, и, надеюсь, вы сможете найти остальную часть пути. Я инкапсулировал данные select в инструкцию LINQ, и, надеюсь, вы можете поменять их, как вам нужны:
var q = from myDatabaseRow in dbContext.TableName
select new
{
myDatabaseRow.FieldName,
(ColumnAttribute)TypeDescriptor.GetProperties(myDatabaseRow.GetType())["FieldName"].Attributes[typeof(ColumnAttribute)]
};
Для этого нужно выбрать свойство из таблицы, а затем выбрать новый анонимный тип. Второе свойство в анонимном типе - это атрибут ColumnAttribute, который вы видите в поле модели данных. Затем вы можете использовать свойство .DbType, чтобы узнать максимальную длину. Надеюсь, это поможет!