2016-04-23 67 views
0

將表格從服務器資源管理器拖動到DataClasses.dbml後,Visual Studio將在DataClasses.designer.cs中自行生成代碼。生成的C#LINQ to SQL類

如果表中的一個「S」,如Books名結束,VS將刪除的「在類名,並保留「S」與物業名稱:

public System.Data.Linq.Table<Book> Books 
{ 
    get 
    { 
     return this.GetTable<Book>(); 
    } 
} 

如果表不帶「S」結尾,如Book,VS將保留類名,並添加一個「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 

我們用我們自己的電腦開展同一個項目。如果拖動一個新表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; 

我該如何解決這個問題?

+0

看吧(及周邊):https://msdn.microsoft.com/en-us/library/ system.data.entity.modelconfiguration.conventions.pluralizingtablenameconvention(v = vs.113).aspx –

+0

導出.vssettings並讓你的同事使用它們 –

回答

0

默認情況下,從Server Explorer/Database Explorer將名稱以s或ies結尾的數據庫對象拖放到Visual Studio中的LINQ to SQL Tools時,生成的實體類的名稱將從複數更改爲單數。這樣做是爲了更準確地表示實例化的實體類映射到單個數據記錄的事實。例如,將Customers表添加到O/R設計器會導致名爲Customer的實體類,因爲該類僅爲單個客戶保存數據。

如何:打開多元化和關閉(O/R設計器):

https://msdn.microsoft.com/en-us/library/bb384507.aspx