2011-04-25 35 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