2015-02-11 3 views
0

Я хочу отобразить каждое поле, в которое пользователь вводит данные, в коррелированные с полем базы данных, которое можно легко установить, прочитав определение таблицы базы данных и вручную настроив ее в режиме бритвы максимальный или в моей модели просмотра, но мне нужно сделать его динамическим, если администратор базы данных изменит максимальный предел символов через SQL-сервер, он автоматически обновит максимальный предел символа в текстовом поле. Я пытаюсь прочитать его из структуры Entity и установить его в режиме бритвы. Возможно ли это сделать его динамичным.Прочитать максимальную длину поля Entity Framework и назначить текстовое поле в Razor View

И как я могу прочитать поле максимальной длины из вида бритвы.

+2

АБД не должен быть произвольно изменяя схему базы данных приложения, не требуя изменения самого приложения - похож, рецепт для катастрофы. Однако ответ в следующем вопросе будет извлекать атрибуты поля nvarchar: http://stackoverflow.com/questions/18611878/find-variable-length-for-sql-server-datatype-nvarchar-from-c-sharp -код – user1666620

ответ

2

После дальнейшего поиска я выяснить, как читать максимальную длину поля от Entity Framework схемы

public void read() 
     { 
      using (var db = new PortalContext()) 
      { 
       var objectContext = ((IObjectContextAdapter)db).ObjectContext; 
       var container = objectContext.MetadataWorkspace.GetEntityContainer(objectContext.DefaultContainerName, DataSpace.CSpace); 
       int maxLength = (int)container.EntitySets["Customers"].ElementType.Properties["LastName"].MaxLength; 
      } 
     } 
+0

Отличный ответ. Укажите контекст: а именно: (1) что «PortalContext» следует заменить именем модели сущности, наследующей от DbContext и (2), что имена наборов сущностей должны соответствовать db, не обязательно именам сущностей в таблицах, если их имена были сингулярными (например, Клиенты для Клиента). Кроме того, требуется два использования: using System.Data.Entity.Core.Metadata.Edm; с использованием System.Data.Entity.Infrastructure; –

Смежные вопросы