生成的 C# LINQ to SQL 类
Generated C# LINQ to SQL Classes
Visual Studio 将在我将 table 从服务器资源管理器拖到 DataClasses.dbml 后在 DataClasses.designer.cs 中自行生成代码。
如果table的名字以's'结尾,比如Books
,VS会移除's'在class的名字和将 's' 保留为 属性 名称:
public System.Data.Linq.Table<Book> Books
{
get
{
return this.GetTable<Book>();
}
}
如果table不是以's'结尾的,比如Book
,VS会保留class的名字,加上一个's' 属性 姓名:
public System.Data.Linq.Table<Book> Books
{
get
{
return this.GetTable<Book>();
}
}
然而我同事的VS只保留了名字:
Book: public System.Data.Linq.Table<Book> Book
Books: public System.Data.Linq.Table<Books> Books
我们用自己的电脑在同一个项目上工作。如果将新的 table 拖到 DataClasses.dbml 并保存,我的 VS 将更改他的旧代码:
public System.Data.Linq.Table<Book> Book
至
public System.Data.Linq.Table<Book> Books
以及他的所有代码,例如
DataClassesDataContext db = new DataClassesDataContext();
var book = db.Book;
会出错,因为现在它必须是:
var book = db.Books;
我该如何解决这个问题?
默认情况下,当您将名称以 s 或 ies 结尾的数据库对象从服务器 Explorer/Database 资源管理器拖到 Visual Studio 中的 LINQ to SQL 工具时,生成的实体 classes 从复数变为单数。这样做是为了更准确地表示实例化实体 class 映射到单个数据记录这一事实。例如,将 Customers table 添加到 O/R Designer 会生成名为 Customer 的实体 class,因为 class 将仅保存单个客户的数据。
如何:打开和关闭复数(O/R Designer):
Visual Studio 将在我将 table 从服务器资源管理器拖到 DataClasses.dbml 后在 DataClasses.designer.cs 中自行生成代码。
如果table的名字以's'结尾,比如Books
,VS会移除's'在class的名字和将 's' 保留为 属性 名称:
public System.Data.Linq.Table<Book> Books
{
get
{
return this.GetTable<Book>();
}
}
如果table不是以's'结尾的,比如Book
,VS会保留class的名字,加上一个's' 属性 姓名:
public System.Data.Linq.Table<Book> Books
{
get
{
return this.GetTable<Book>();
}
}
然而我同事的VS只保留了名字:
Book: public System.Data.Linq.Table<Book> Book
Books: public System.Data.Linq.Table<Books> Books
我们用自己的电脑在同一个项目上工作。如果将新的 table 拖到 DataClasses.dbml 并保存,我的 VS 将更改他的旧代码:
public System.Data.Linq.Table<Book> Book
至
public System.Data.Linq.Table<Book> Books
以及他的所有代码,例如
DataClassesDataContext db = new DataClassesDataContext();
var book = db.Book;
会出错,因为现在它必须是:
var book = db.Books;
我该如何解决这个问题?
默认情况下,当您将名称以 s 或 ies 结尾的数据库对象从服务器 Explorer/Database 资源管理器拖到 Visual Studio 中的 LINQ to SQL 工具时,生成的实体 classes 从复数变为单数。这样做是为了更准确地表示实例化实体 class 映射到单个数据记录这一事实。例如,将 Customers table 添加到 O/R Designer 会生成名为 Customer 的实体 class,因为 class 将仅保存单个客户的数据。
如何:打开和关闭复数(O/R Designer):