基架
基架是一种机制,通过基架,我们不必再为每一个表的增加、查看、修改做不同的页面,因为基架会自动生成这些页面。
对所有表启用基架
注意,对所有表启用基架表示公开了整个数据模型。
同第一个示例中的,要对所有表启用基架,则在 Global.asax.cs 的 RegisterRoutes 方法中,添加:
YourDataContextType 为 *.dbml 中的继承自 System.Data.Linq.DataContext 的类的名称。如第一个示例中的 CfteaDataContext。
实际上这段代码有两个作用:一是注册数据上下文,二是启用基架。
对特定表启用基架(请注意后面的“重要说明”)
首先是注册数据上下文,但并不启用基架,如:
然后在 Cftea.designer.cs 中找到要启用基架的表 [Table(Name="dbo.Products")],在它下面添加一行:
运行效果:
可以发现没有了 Categories 这个表,我们在浏览器中访问 /Categories/List.aspx,也会报 HTTP 404 错误。
对特定字段禁用基架(请注意后面的“重要说明”)
也就是不要让某个或某些字段显示出来。首先确保要处理的表已经启用基架,然后 Cftea.designer.cs 中找到该表的字段属性,对其设置如下属性:
重要说明
如果我们更改了 Cftea.designer.cs,就不能再在对象关系设计器中作任何更改了,否则 Cftea.designer.cs 文件的更改会丢失,因为对象关系设计器总是按自己的数据重新生成代码,而忽视我们添加或更改的某些部分。
解决办法是不改动 Cftea.designer.cs,而是在 Cftea.cs 上做文章,只是要麻烦些。如上,展开 Cftea.dbml,打开 Cftea.cs。如果不存在 Cftea.cs,则在 App_Code 下新建一个即可。
对特定表启用基架
对特定字段禁用基架(还要复杂些)
以上两段代码并没有什么逻辑内容,它仅是为了让属性([] 中的内容)生效。