用linq到sql dbml,如何获取数据类型的大小?像varchar(50),如何获得50?

时间:2009-06-01 11:29:38

标签: vb.net linq-to-sql

用linq到sql(dbml文件),如何获取数据类型的大小?

例如,varchar(50),如何获得50?

感谢

3 个答案:

答案 0 :(得分:0)

您可以从与该属性关联的ColumnAttribute中获取字符串(例如:“NVarChar(30)”)。

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));

答案 1 :(得分:0)

你也可以这样做......

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

希望有助于:)

答案 2 :(得分:0)