2011-08-23 69 views
1

我正在使用EF CodeFirst处理ASP.NET MVC 3项目。我有一个简单的类与键柱设置几个属性:尽管使用ScaffoldColumn,仍未显示键列(true)

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(真)的属性。这是因为我想要手动输入TagID。现在,当将TagControler添加到项目中时,我没有在5个生成的视图中均未显示TagID列。

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

回答

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

+0

我同意这编辑实体的主键没有任何意义,但在创建时手动输入它肯定是有意义的。恕我直言,只有在数据库不能自动生成的主键字段与任何其他可编辑字段之间的区别应该只在编辑视图中,其中主键字段应该显示为只读。 – Anil

相关问题