“从数据库更新模型”

时间:2012-12-11 15:39:37

标签: visual-studio entity-framework visual-studio-2012

我正在使用Visual Studio并开发基于MVC的应用程序。我正在尝试为我的模型添加一些表格。我使用了“从数据库更新模型”选项。新表出现在我的edmx文件中。我重建了我的解决方案,但缺少新表的类。每次我想添加新表时,是否有任何技巧来生成类?或者我必须手动完成吗? 当我将“代码生成策略”设置为“默认”时,我会收到类似于此Error 117 The type 'Mvc4.Models.DPR_MM' already contains a definition for 'DPR_TS'的数百个错误。
我删除了整个模型。在搜索DPR_MM的整个解决方案时,我得到了以下结果: 找到所有“DPR_MM”,子文件夹,查找结果1,整个解决方案,“”

  C:\\Mvc4\Controllers\HomeController.cs(41):                    var DPR_MM = from d in ctx.DPR_MM
  C:\\Mvc4\Controllers\HomeController.cs(45):                    var arr = new object[DPR_MM.Count()];
  C:\\Mvc4\Controllers\HomeController.cs(47):                    foreach (var d in DPR_MM)
  C:\\Mvc4\Models\Model1.edmx(9):          <EntitySet Name="DPR_MM" EntityType="Model.Store.DPR_MM" store:Type="Tables" Schema="QF" />
  C:\\Mvc4\Models\Model1.edmx(45):        <EntityType Name="DPR_MM">
  C:\\Mvc4\Models\Model1.edmx(366):          <EntitySet Name="DPR_MM" EntityType="Model.DPR_MM" />
  C:\\Mvc4\Models\Model1.edmx(389):        <EntityType Name="DPR_MM">
  C:\\Mvc4\Models\Model1.edmx(715):          <EntitySetMapping Name="DPR_MM">
  C:\\Mvc4\Models\Model1.edmx(716):            <EntityTypeMapping TypeName="Model.DPR_MM">
  C:\\Mvc4\Models\Model1.edmx(717):              <MappingFragment StoreEntitySet="DPR_MM">
  C:\\Mvc4\Models\Model1.edmx.diagram(8):        <EntityTypeShape EntityType="Model.DPR_MM" Width="1.5" PointX="0.75" PointY="0.75" IsExpanded="true" />
  Matching lines: 11    Matching files: 3    Total files searched: 168

所以我没有看到任何DPR_MM类。我做错了什么?

1 个答案:

答案 0 :(得分:0)

修改

现在我知道您收到了错误,请查看生成的代码(您甚至可以搜索类DPR_MM的解决方案以查找此类的所有实例)。我猜你的项目中有一个类Mvc4.Models.DPR_MM,它已经有DPR_TS作为成员,代码生成就会看到并且不会生成另一个类,如下所示:

public partial class DPR_MM : EntityObject
{
    public global::System.Int32 DPR_TS
    {
    ...
    }
}

public partial class DPR_MM : EntityObject
{
    //maybe code generation fails because it doesn't want to do this a second time knowing it would be ambiguous 
    public global::System.Int32 DPR_TS  
    {
    ...
    }
}

除非存在某些数据库或命名空间问题,否则您应始终能够生成新模型,因此请确保没有像@Mamu所说的那样存在额外的文件。或者你可以谷歌它:
first hit
another answer





初步回答

做一个构建。然后,您应该根据“从数据库更新模型”时选择的表来查看所有新类(显然,在“从数据库更新模型”时必须选择新表)