如何从强类型视图隐藏实体框架实体属性?

时间:2012-08-14 12:56:45

标签: asp.net-mvc entity-framework data-annotations

我在ASP.NET MVC 4.0应用程序中使用Entity Framework,我想知道如何防止或隐藏我的实体中的字段在强类型视图中生成?现在,在我不想要的视图上生成了几个主键字段和时间戳字段。

我知道将属性设置为internal而不是public,但我不确定这将产生的下游总效果。我更喜欢在属性上使用数据注释,但我尝试过的是阻止Controller脚手架或将它们作为隐藏字段。我更喜欢让他们保持公开,但不会在强类型视图中生成。

修改

要生成强类型视图,请在Visual Studio中添加新的“视图”,然后在对话框中选择要对其进行建模的类。这反过来将创建一个视图,其中包含类的属性所表示的所有控件。例如,创建LastName字段如下:

@Html.EditorFor(model => model.FirstName)

3 个答案:

答案 0 :(得分:20)

回答问题

属性

[ScaffoldColumn(false)]

[Display(AutoGenerateField=false)]

之前,不需要的属性会阻止de designer为这些属性生成脚手架字段。

答案 1 :(得分:7)

要通过数据注释从UI隐藏属性,请使用

修饰属性
 [ScaffoldColumn(false)] 

它们将被编辑器模板忽略。

答案 2 :(得分:4)

您应该使用仅包含所需属性的单独ViewModel类。