Frage

Ich verwende Linq to SQL nun schon seit einiger Zeit und finde es sehr hilfreich und einfach zu verwenden.Bei anderen ORM-Tools, die ich in der Vergangenheit verwendet habe, verfügt das aus der Datenbank gefüllte Entitätsobjekt normalerweise über eine Eigenschaft, die die Länge der zugrunde liegenden Datenspalte in der Datenbank angibt.Dies ist in Datenbindungssituationen hilfreich, in denen Sie die MaxLength-Eigenschaft für ein Textfeld festlegen können, um beispielsweise die Länge der vom Benutzer eingegebenen Eingaben zu begrenzen.

Ich kann mit Linq to SQL keine Möglichkeit finden, die Länge einer zugrunde liegenden Datenspalte zu ermitteln.Kennt jemand eine Möglichkeit, dies zu tun?Hilfe bitte.

War es hilfreich?

Lösung

Verwenden des LINQ ColumnAttribute zum Abrufen von Feldlängen aus Ihrer Datenbank:

http://www.codeproject.com/KB/cs/LinqColumnAttributeTricks.aspx

Andere Tipps

Danke.Tatsächlich scheinen beide Antworten zu funktionieren.Leider scheinen sie die Linq-Attribute zu berücksichtigen, die bei der Codegenerierung generiert wurden.Obwohl dies die richtige Vorgehensweise zu sein scheint, verkaufen wir in meiner Situation Softwareprodukte und gelegentlich erweitert der Kunde die Länge einiger Spalten, um seine Daten unterzubringen.Daher spiegelt die mit dieser Technik gemeldete Feldlänge möglicherweise nicht immer die tatsächliche Länge der zugrunde liegenden Datenspalte wider.Na ja, es ist doch nicht die Schuld von Linq to SQL, oder?:) :)

Danke für die schnellen Antworten!

Wenn Sie die genaue Spaltenlänge kennen müssen, können Sie auf die System.Data-Klassen selbst zurückgreifen.Etwas in der Art:

var context = new DataContextFromSomewhere();
var connection = context.Connection;
var command = connection.CreateCommand( "SELECT TOP 1 * FROM TableImInterestedIn" );
var reader = command.ExecuteReader();
var table = reader.GetSchemaTable();

foreach( var column in table.Columns )
{
    Console.WriteLine( "Length: {0}", column.MaxLength );

}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top