Ich benutze Entity Framework und hier ist, wie die Metadaten für eine der Tabellen aussieht.Get Spaltenname der Entität
[Column("pp_account")]
public string Account { get; set; }
[Column("pp_added")]
public DateTime? AddDate { get; set; }
[Column("pp_auser")]
public string AddUpdateUserName { get; set; }
[Column("pp_cfalt")]
public string AlternateForwardingNumber { get; set; }
Ich habe Interesse der Spalte Attributnamen anstelle des öffentlichen Namen in immer, das heißt Display pp_added statt „AddDate“. Hier ist eine foreach-Schleife die ich geschrieben habe, so weit, dass mich fast bekommt es
foreach(var field in _personal.GetType().GetProperties())
{
sb.Append("\nName : " + field.Name + "\n");
sb.Append("Type : " + field.PropertyType.Name + "\n");
sb.Append("Attributes: " + field.Attributes + "\n");
sb.Append("Value : " + field.GetValue(_personal, null) + "\n");
}
Hier ist, was zurückgegeben wird:
Name: AddDate
Type: Nullable'1
Attributes: None
Value: 5/2/2014 12:00:00 AM
Was ich möchte zurück zu bekommen, ist
Name: pp_added
Type: Date
Value: 5/2/2014 12:00:00 AM
Wie kann ich auf [Column("pp_added")]
zugreifen, um pp_added
anstelle der öffentlichen Name
zu bekommen?
Sie müssen Reflexion verwenden. Weitere Informationen finden Sie unter http://stackoverflow.com/questions/9113020/get-attribute-info-with-generics. – mit
Der reflektionsbasierte Ansatz funktioniert nicht in einem flüssigen API-Fall. Sie müssen EF-Metadaten untersuchen. – Dennis