De acuerdo con la pregunta this, no hay una forma incorporada en EF v1 para determinar la longitud de un campo. ¿Hay un incorporado forma de hacerlo en el Entity Framework que se envía con .NET 4, si es así, ¿cómo?¿Cómo averiguar la longitud máxima del campo en Entity Framework en .NET 4?
Respuesta
No hay una nueva forma de acceder a la longitud de una propiedad en EF 4.0. Todavía tiene que caminar sobre los metadatos, como se muestra en in the accepted answer on the question you reference.
Alex James
Ex miembro del equipo EF!
Esto actúa:
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;
}
}
}
Ejemplo de uso: maxLength = GetMaxLength
¿Es mejor que el método similar (pero más corto) de http://stackoverflow.com/a/772556/52277? –
- 1. Entity Framework en .NET?
- 2. Entity Framework 4 Repository?
- 3. Cómo manejar ObjectResult en Entity Framework 4
- 4. Entity Framework 4 - Herencia
- 5. Cuándo utilizar ApplyOriginalValues en Entity Framework 4?
- 6. Longitud máxima del identificador
- 7. Claves únicas en Entity Framework 4
- 8. Membresía Asp.Net - Proveedores en Entity Framework 4
- 9. Entity Framework 4 y WPF
- 10. Entity framework 4 o DataSet?
- 11. Entity Framework Validación de confusión - longitud máxima de cadena de '128'
- 12. MERGE en Entity Framework
- 13. Error del cargador SQL: "El campo de longitud variable excede la longitud máxima".
- 14. ¿Demasiadas combinaciones externas a la izquierda en Entity Framework 4?
- 15. .NET Entity Framework y transacciones
- 16. Longitud máxima del campo "tzname"/nombre del identificador de zona horaria
- 17. Longitud máxima del título Atributo
- 18. Entity Framework 4: ¿Cómo encontrar la clave principal?
- 19. ¿Cómo configuro un campo para DBNull en Entity Framework
- 20. Creando propiedades blob con Entity Framework 4?
- 21. longitud máxima del nombre del archivo
- 22. Entity Framework 4: Selección de registro único
- 23. Entity Framework 4 POCO con diccionario
- 24. Entity Framework 4 Delete Object from entity collection
- 25. FunctionImport in entity framework 4 número
- 26. Longitud máxima de cadena de consulta en asp .net 2.0
- 27. Entity Framework 4 y valores predeterminados
- 28. Entity Framework 4, heredando vs extendiendo?
- 29. Longitud máxima del nombre de la variable en JavaScript
- 30. Entity Framework 4 - AddObject vs Attach
Esto es válido para EF 5? –