с LINQ для SQL DBL, как получить размер типа данных? как varchar (50), как получить эти 50? - PullRequest
0 голосов
/ 01 июня 2009

с linq to sql (файл dbml), как получить размер типа данных?

для примера, varchar (50), как получить эти 50?

спасибо

Ответы [ 3 ]

0 голосов
/ 01 июня 2009

Вы также можете сделать это так ...

    String databaseType = 
        *DataContextInstance*.Mapping.MappingSource
        .GetModel(typeof(*DataContext*))
        .GetMetaType(typeof(*Entity*))
        .DataMembers.First(x => x.Name.Equals("ColumnName"))
        .DbType;

Надеюсь, это поможет :)

0 голосов
/ 05 июня 2009
0 голосов
/ 01 июня 2009

Вы можете получить строку (например: "NVarChar (30)") из атрибута ColumnAttribute, связанного со свойством.

var prop = typeof(User).GetProperty("FirstName");
var attr = (ColumnAttribute)prop.GetCustomAttributes(typeof(ColumnAttribute), false)[0];
string dbType = attr.DbType;
int index = dbType.IndexOf("(") + 1;
int width = int.Parse(dbType.Substring(index, dbType.IndexOf(")") - index));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...