Ключевой столбец не отображается несмотря на ScaffoldColumn (true) - PullRequest
1 голос
/ 24 августа 2011

Я работаю над проектом ASP.NET MVC 3, используя EF CodeFirst. У меня есть простой класс с несколькими атрибутами, установленными в ключевом столбце:

public class Tag
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    [ScaffoldColumn(true)]
    public short TagID { get; set; }

    [Required]
    [MaxLength(50)]
    public string Name { get; set; }
}

Как видите, есть атрибуты DatabaseGenerated (DatabaseGeneratedOption.None) и ScaffoldColumn (true). Это потому, что я хочу иметь возможность вводить TagID вручную. Теперь, когда TagControler добавлен в проект, у меня нет столбца TagID, показанного ни в одном из 5 сгенерированных представлений.

Я знаю, что могу добавить это вручную, но мне интересно, если это поведение задуманно, или я делаю что-то не так?

1 Ответ

2 голосов
/ 24 августа 2011

Первичные ключи по умолчанию не создаются как редактируемые поля. Вместо этого есть скрытое поле для ключа. Если вы хотите изменить это поведение, вы можете изменить шаблоны, но это сделано специально, так как обычно нет смысла редактировать первичный ключ объекта.

Вот некоторая информация о том, как это сделать, если вы хотите вносить это изменение каждый раз, когда добавляете представление или хотите внести какие-то другие пользовательские изменения в леса:

http://blogs.msdn.com/b/joecar/archive/2011/01/06/add-the-asp-net-mvc-3-code-templates-to-your-application-with-nuget.aspx

...