Как вы управляете длиной генерируемых столбцов nvarchar при использовании EF4 Code First? - PullRequest
0 голосов
/ 15 марта 2011

Я использую EF4 Code First (CTP5) для генерации своей базы данных, и я использую DataAnnotations, чтобы попытаться управлять сгенерированной схемой БД.Если я использую атрибут [Required], то столбец будет правильно сгенерирован как NOT NULL, но когда я пытаюсь использовать атрибут [StringLength (50)], все мои столбцы в конечном итоге создаются как NVarChar (max).

Вот фрагмент кода для одного из моих предложений (упрощенно), чтобы вы могли увидеть мою проблему:

public class Person
{
    public int PersonID { get; set; }

    // This property is generated as NVarChar(max) NOT NULL
    // I prefer it be NVarChar(50) NOT NULL
    [Required(ErrorMessage="Please enter a first name")]
    [StringLength(50, ErrorMessage="First name is too long")]
    public string FirstName { get; set; }
}

Если атрибут [StringLength] не работает, есть ли другойспособ контроля длины сгенерированного столбца nvarchar?

Спасибо,
Брент Стюарт

1 Ответ

0 голосов
/ 16 марта 2011

Я обнаружил, что проблема, с которой я столкнулся, была вызвана ошибкой в ​​LINQPad, из-за которой он не сообщал точно типы столбцов моей базы данных SQL Server CE 4.Атрибут [StringLength] работал правильно, как и должно.

...