尽管ScaffoldColumn(true)仍未显示键列

时间:2011-08-23 21:49:52

标签: asp.net-mvc-3 ef-code-first data-annotations

我正在使用EF CodeFirst处理ASP.NET MVC 3项目。我有一个简单的类,在键列上设置了很少的属性:

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添加到项目中时,我没有在5个生成的视图中显示TagID列。

我知道我可以手动添加它,但我想知道这种行为是设计还是我做错了?

1 个答案:

答案 0 :(得分:2)

默认情况下,主键不支持为可编辑字段。相反,密钥有一个隐藏字段。如果您想要更改此行为,您可以修改模板,但它是设计的,因为通常编辑实体的主键没有意义。

如果您想在添加视图或希望对脚手架进行其他自定义更改时进行此更改,以下是有关如何执行此操作的一些信息:

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