2

Когда я импортировать базы данных в моей EDMX модели я получаю следующую информацию касаемо Max LengthПолучить максимальную длину столбца в Entity Framework

enter image description here

В изображении выше, у меня есть столбец типа String с максимальной длиной

Есть ли способ проверить (при кодировании) эту максимальную длину, не задумываясь о свойствах EDMX?


Пример того, как я хочу, информацию, которая будет отображаться:

Если я типа что-то вроде Class.ColumnName он показывает в Intellisense как сводную информацию.

ответ

0

Один из способов объявить его в классе и использовать этот класс (не EDMX), пример:

[Column("Name")] 
[Required(ErrorMessage = "Name is obligatory")] 
[StringLength(30, MinimumLength = 3, ErrorMessage = "Name has to have at least 3 characters")] 
public string Name { get; set; } 

Затем я использую пользовательский элемент управления проверьте его на экране. (Я знаю, что есть более эффективные решения)


PS: Класс немного сложный и с большим количеством настройки, если кто-то хочет это я могу отправить в будущем.

Но, вы можете проверить больше об этом в этих ссылок:

StringLength vs MaxLength attributes ASP.NET MVC3 with EF 4.1 Code First
C# How to use DataAnnotations StringLength and SubString to remove text
StringLengthAttribute Class
и String Canonical Functions

0

Intellisense покажет, какой текст находится в поле Документация -> Резюме дизайнера. Это дает вам несколько вариантов.

1) Вы можете быть действительно OCD, и после редактирования EDMX в дизайнере вы обязательно должны всегда заполнить это поле.

2) Вы можете создать некоторый скрипт для разбора вашей EDMX-(вы можете редактировать его так же, как любой файл XML), обратите внимание на <Property> элемент, который имеет MaxLength указанные, и добавить <Documentation> и <Summary> элементов внутри, просто о том, что в максимальная длина. Например, синтаксический анализ:

<Property Name="USER_NAME" Type="String" MaxLength="50" Unicode="true" FixedLength="false" > 

в:

<Property Name="USER_NAME" Type="String" MaxLength="50" Unicode="true" FixedLength="false" > 
    <Documentation> 
    <Summary>Max length of 50</Summary> 
    </Documentation> 
</Property> 

Затем после того, как ваша правка будет завершена, все, что вам нужно сделать, это восстановить .Designer.cs/VB, просто открыв дизайнер и снова экономить ,

3) Как-то заставить Visual Studio знать, что класс из EDMX, а затем вернуться к разбору EDMX, чтобы получить MaxLength, а затем обновить Intellisense для отображения соответственно. (Я понятия не имею, если это возможно.)

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