我正在使用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类。我做错了什么?
答案 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
初步回答
做一个构建。然后,您应该根据“从数据库更新模型”时选择的表来查看所有新类(显然,在“从数据库更新模型”时必须选择新表)