为什么"linq to sql classes"在创建类时会更改表的名称?

too*_*hel 2 linq asp.net-mvc

我进入并在Visual Studio中添加一个新的"linq to sql classes",然后将一个表从Database Explorer拖到新的DBML中,新类的名称不再是复数.如果我仍然希望它是复数怎么办?如果我拖动一个不是复数的表,我会得到一堆编译错误,关于我在dbml布局上放置的表中所有字段的类型定义.如果我然后通过单击名称并更改它来使dbml布局中不是复数的表的类名复数,则不再有编译错误.

Mun*_*PhD 6

您可以单击dbml表中的tablename并重命名它.或者,您可以在DBML中选择表格并转到属性窗口.在那里,您可以更改名称以及它所连接的表格.

避免名称冲突的一种方法是相应地指定名称空间.例如,您可以将DBML文件放在项目的子文件夹中,并为其分配类似DataAccess的文件.因此,当您映射到Ling2Sql类时,您将执行DataAccess.Customer并且可以避免与Customer发生冲突,因为它位于其他位置.

作为一个小问题,默认情况下Linq2Sql使表非复数.它基于一个惯例.例如,一个表客户有很多客户.实例化对象时,您正在查看单个客户,而不是表.该对象基本上映射到Customers表中的一行,因此它变得单一.