Nach der this Frage, gibt es keinen eingebauten Weg in EF v1, um die Länge eines Feldes herauszufinden. Gibt es eine integrierte Möglichkeit, dies in dem Entity Framework zu tun, das mit .NET 4 geliefert wird, wenn ja - wie?Wie ermittelt man die maximale Feldlänge in Entity Framework in .NET 4?
Antwort
Es gibt keine neue Möglichkeit, auf die Länge einer Eigenschaft in EF 4.0 zuzugreifen. Sie müssen immer noch über die Metadaten gehen - wie gezeigt in the accepted answer on the question you reference.
Alex James
Ehemaliger EF-Teammitglied!
Dies wirkt:
using System;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
using System.Data.Metadata.Edm;
using System.Linq;
using System.Linq.Expressions;
namespace EfWidgets
{
public class EntityWidgets
{
public static int GetMaxLength<TEntity>(ObjectContext oc, Expression<Func<TEntity, string>> property)
where TEntity : EntityObject
{
var test = oc.MetadataWorkspace.GetItems(DataSpace.CSpace);
if (test == null)
return -1;
Type entType = typeof(TEntity);
string propertyName = ((MemberExpression)property.Body).Member.Name;
var q = test
.Where(m => m.BuiltInTypeKind == BuiltInTypeKind.EntityType)
.SelectMany(meta => ((EntityType)meta).Properties
.Where(p => p.Name == propertyName && p.TypeUsage.EdmType.Name == "String"));
var queryResult = q.Where(p =>
{
var match = p.DeclaringType.Name == entType.Name;
if (!match)
match = entType.Name == p.DeclaringType.Name;
return match;
})
.Select(sel => sel.TypeUsage.Facets["MaxLength"].Value)
.ToList();
if (queryResult.Any())
{
int result = Convert.ToInt32(queryResult.First());
return result;
}
return -1;
}
}
}
Anwendungsbeispiel: maxLength = GetMaxLength
Ist es besser als ähnliche (aber kürzere) Methode von http://stackoverflow.com/a/772556/52277? –
- 1. Wie installiert man .NET 4 Framework in Windows 10
- 2. Validierung in Entity Framework verhindern 4
- 3. Handle Ausnahmen in Entity Framework 4
- 4. Füllen von Fremdschlüsselobjekt in Entity Framework 4
- 5. Asp.Net-Mitgliedschaft - Anbieter in Entity Framework 4
- 6. .NET Entity Framework
- 7. Datenbankmigrationen für Entity Framework 4
- 8. Entity Framework 4 und Standardwerte
- 9. Wie erhält man die maximale Dateigröße in .Net?
- 10. kann die angegebenen Metadaten Ressourcenfehler in Entity Framework 4
- 11. Wie verwendet man Transaktion in Entity Framework?
- 12. .NET Entity Framework und Transaktionen
- 13. In Entity Framework Wie
- 14. Wie aktualisiert man automatisch die Modified-Eigenschaft einer Entität in Entity Framework 4 beim Speichern?
- 15. NET-Entity Framework Object Fehler
- 16. Wie ist die Leistung von Entity Framework 4 vs Entity Framework 3.5?
- 17. Target .NET Framework 4-Clientprofil und .NET Framework 4 (vollständig) in derselben Lösung
- 18. Best Practices - Datenanmerkungen vs OnChanging in Entity Framework 4
- 19. Ermitteln der Feldlänge einer Spalte in einer Datentabelle
- 20. Entity Framework Power 4-Tools in Visual Studio 2013
- 21. Zu viele externe Verbindungen in Entity Framework 4?
- 22. Wie definiert man eine Sammlung in einem POCO in Entity Framework 4?
- 23. Wie N-N-Beziehung in Entity Framework .NET 3.5
- 24. Mapping in Entity Framework
- 25. Entity Framework 4 Darstellungsobjekt für dynamischen Proxy
- 26. Entity Framework 4 Alle Referenzen automatisch laden
- 27. Blob-Eigenschaften mit Entity Framework 4 erstellen?
- 28. Entity Framework 4 - verhindern grundlegenden Caching
- 29. Entity Framework 4 (CTP 5) Gleichzeitigkeit
- 30. Emailaddress Feldlänge in der Datenbank
Dies gilt für EF 5? –