2011-04-25 47 views
0

我正在使用.NET Framework 3.5。所以我認爲EF也是3.5。 我在這裏看到了一些東西:EF3.5 don't Singularize or Pluralize names實體框架不會多元化我的SQLServer數據庫

不幸的是,在.NET 3.5 SP1中發佈的實體框架的當前版本中,當從數據庫中反向構建模型時,我們不試圖單數化或多元化名稱。

而在我的MVC2項目中,我想編寫一個部分類For Orders進行表單驗證。哪個是對的?你能建議一些示例文件嗎?

public partial class Order { ... } 
public partial class Orders { ... } 

的代碼從我的.cs後的.edmx:

public partial class Questions : global::System.Data.Objects.DataClasses.EntityObject 
{ 
    /// <summary> 
    /// Create a new Questions object. 
    /// </summary> 
    /// <param name="questionnaireGUID">Initial value of QuestionnaireGUID.</param> 
    public static Questions CreateQuestions(string questionnaireGUID) 
    { 
     Questions questions = new Questions(); 
     questions.QuestionnaireGUID = questionnaireGUID; 
     return questions; 
    } 
+0

您沒有升級到.NET 4.0的任何特定原因? – BrokenGlass 2011-04-25 02:48:02

+0

由於財務原因,生產服務器是Windows 2003。而我們的許多其他應用程序或函數仍然使用NET 2.0。我正在研究:) – hbrls 2011-04-25 02:49:21

+0

您仍然可以在Windows 2003 Server上使用.NET 4.0 – BrokenGlass 2011-04-25 02:58:02

回答

0

您可以在您的.edmx模型手動變複數enities名。

部分類取決於實體類的名稱,即生成的。您可以再次檢查實體模型(此時它的.cs類),在那裏您會發現是否生成了OrderOrders

編輯:

您發現您EDMX public partial class Questions,所以如果你想創建驗證類這一點,你必須再次使用public partial class Questions。如果你使用單數形式,這些類將不會被連接,因爲在這個級別上,他們只是類,編譯器可能不會猜測,他應該連接問題* s *。這些類名只是沒有任何語義的字符串。

+0

我在原始問題中粘貼了一些我的代碼。 我現在仍在處理數據庫結構,所以數據庫仍然經常更改。我想修改數據庫並使用VS2008自動反編譯.edmx。 – hbrls 2011-04-25 02:58:02

+0

如果你在db中的表名是'Questions',但你希望那個實體名稱是'Question'並且更早的ED不會自動執行,那麼你必須在生成的模型中手動重寫你的名字。在您的設置中我沒有看到任何解決方法。 – Damb 2011-04-25 03:01:40

+0

對不起,不清楚自己。 '問題'或'問題'不會打擾我。我的問題是,是否在我的部分類中使用'Questions'或'Question',以便我可以進行表單驗證。 – hbrls 2011-04-25 03:08:30