Gibt es eine Möglichkeit, die DataType-Length-Informationen der Datenbankspalte angesichts der EntityType einer Tabelle zu erhalten?Entity Framework - wie Datenbankspalten-Datentyp aus Metadaten erhalten
Beispiel SQL (SQL Server), die Sie gerade sehen, ausführen können, um welche Informationen Ich suche:
select
sys.tables.name as 'Table Name',
sys.columns.name as 'Column Name',
sys.systypes.name as 'DataType',
sys.columns.max_length as 'Max Length',
sys.columns.precision as 'Precision'
from
sys.columns, sys.systypes, sys.tables
where
sys.columns.system_type_id = sys.systypes.xtype
and sys.systypes.name <> 'sysname'
and sys.tables.type = 'U'
and sys.tables.name <> 'sysdiagrams'
and sys.columns.object_id=sys.tables.object_id
order by
sys.tables.name, sys.columns.column_id;
Die letzten drei Spalten enthalten die Daten, die Ich mag würde den Zugang zu haben, weil ich bin etwas Dokumentation erzeugen. Ein Beispiel für die Dokumentation ist: Entity Framework löst standardmäßig eine Exception aus, wenn eine Zeichenfolge für eine Eigenschaft festgelegt wird, die ihre Länge nicht unterstützt. Ein Entwickler ohne Zugriff auf die Datenbankmetadaten hat in diesem Fall eine Herausforderung mit der Auffindbarkeit von Längenanforderungen.
Danke, Aaron
Aber ... es gibt Attribute konzeptionellen Modell, das diese Informationen für die Felder enthalten, wo sie gelten. Unter der Annahme, dass die Informationen auf dem neuesten Stand gehalten werden, können Sie sie von der CSDL laden, anstatt nach Mappings usw. suchen zu müssen. – KristoferA
Absolut. Ich wollte dies erwähnen ... –
Übrigens, wenn diese Attribute nicht mehr synchron sind, ist es ein Kinderspiel, sie mit dem Modellvergleich in meinem Add-In ... (http://huagati.blogspot.com) zu aktualisieren /2010/07/introducing-model-comparer-for-entity.html) – KristoferA