В соответствии с вопросом this в EF v1 нет встроенного пути, чтобы выяснить длину поля. Есть ли встроенный способ, чтобы сделать это в Entity Framework, который поставляется с .NET 4, если так - как?Как определить максимальную длину поля в Entity Framework в .NET 4?
ответ
Нет нового способа доступа к длине объекта в EF 4.0. Вам все равно придется пройти через метаданные - как показано in the accepted answer on the question you reference.
Alex James
Бывший член команды EF!
Это действует:
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;
}
}
}
Пример использования: maxLength = GetMaxLength
Это лучше, чем аналогичный (но более короткий) метод от http://stackoverflow.com/a/772556/52277? –
- 1. Получить максимальную длину столбца в Entity Framework
- 2. PDFBox: как определить максимальную длину PDTextBox
- 3. Программно определить максимальную длину файла:
- 4. Прочитать максимальную длину поля Entity Framework и назначить текстовое поле в Razor View
- 5. Установите максимальную длину поля в joomla
- 6. Как определить коллекцию в POCO в Entity Framework 4?
- 7. Entity Framework в .NET?
- 8. Как указать максимальную длину поля с использованием .net framework 4.0 и EF Code First?
- 9. как обновить объект в Entity Framework 4 .NET
- 10. Единственные изменения в ADO.Net для .Net 4 в Entity Framework?
- 11. Как определить перечисления в платформе Entity Framework?
- 12. TimeStamp в Entity Framework 4
- 13. Entity framework 6.1.2 поддержка .NET framework 4.0?
- 14. Как получить максимальную длину поля с помощью Restlet в Netsuite?
- 15. Как указать минимальную/максимальную длину поля массива в CodeIgniter
- 16. Как установить максимальную длину текстового поля в форме Lotus Notes?
- 17. Как ограничить максимальную длину текстового поля байтом в winrt?
- 18. Entity Framework ошибка в .net
- 19. Получите максимальную длину для каждого поля DataTable
- 20. Исходные коды Entity Framework не скомпилируются с .NET Framework 4
- 21. Уникальные ключи в Entity Framework 4
- 22. Предотвращение проверки в Entity Framework 4
- 23. Репозиторий Entity Framework 4?
- 24. Как вы сопоставляете размер и максимальную длину текстового поля ввода?
- 25. Entity Framework 4 - Inheritance
- 26. Как обрабатывать ObjectResult в Entity Framework 4
- 27. Как запросить объекты в Entity Framework 4
- 28. Entity Framework 4: Generic Repository: как определить EntitySetName?
- 29. Entity Framework 4 Соглашения
- 30. Entity Framework 4 - Ассоциации
Это справедливо для EF 5? –