使用Linq-To-Sql类作为模型并隐藏某些字段

时间:2011-01-26 16:42:32

标签: c# asp.net asp.net-mvc linq-to-sql

我正在使用Linq-To-Sql来创建我的所有实体类。

我有一个表,公司,只包含CompanyID和Name列。插入新记录时,数据库会自动生成CompanyID。

我有一个将公司添加到数据库的视图页面。我将我的Linq-To-Sql实体传递到视图页面并在页面上调用<%= Html.EditorForModel() %>

我的问题是它包含了CompanyID的文本框。

有没有办法隐藏它?环顾四周,我发现你可以使用HiddenInputAttribute,但我不知道如何在我的Linq-To-Sql实体上使用它

2 个答案:

答案 0 :(得分:2)

  

我将Linq-To-Sql实体传递给视图页面

你应该真的使用视图模型。因此,定义一个视图模型类,它专门针对给定视图的需要而定制,并且仅包含必要的属性。然后,控制器可以将模型映射到视图模型,并将视图模型传递给视图。可以使用AutoMapper等框架简化此映射。

答案 1 :(得分:0)

如果直接使用Linq-To-Sql实体,您应该可以使用ScaffoldColumnAttribute for CompanyID:http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.scaffoldcolumnattribute.aspx