
How to get the length of a LINQ to SQL class’s attribute?
The following code snippet will explain how to get length of a LINQ to SQL class’s attribute. This code will return the length of a DB field from an SQL to a Linq class object. How to get length of a LINQ to SQL class’s attribute
public static int GetLengthLimit(object obj, string field) {
int dblenint = 0; // default value = we can't determine the length
Type type = obj.GetType();
PropertyInfo prop = type.GetProperty(field, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance);
// Find the Linq 'Column' attribute
// e.g. [Column(Storage="_FileName", DbType="NChar(256) NOT NULL", CanBeNull=false)]
object[] info = prop.GetCustomAttributes(typeof(ColumnAttribute), true);
// Assume there is just one
if (info.Length == 1) {
ColumnAttribute ca = (ColumnAttribute) info[0];
string dbtype = ca.DbType.ToUpper();
if (dbtype.StartsWith("CHAR") || dbtype.StartsWith("NCHAR") || dbtype.StartsWith("NVARCHAR") || dbtype.StartsWith("VARCHAR")) {
int index1 = dbtype.IndexOf("(");
int index2 = dbtype.IndexOf(")");
string dblen = dbtype.Substring(index1 + 1, index2 - index1 - 1);
int.TryParse(dblen, out dblenint);
} else if (dbtype.StartsWith("DATETIME")) {
dblenint = 8;
}
}
return dblenint;
}
Healthcare software development, HL7 Interface, EMR/EHR integration, mHealth, HIPAA compliant


