【发布时间】:2012-12-11 15:39:37
【问题描述】:
我正在使用 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 类。我做错了什么?
【问题讨论】:
-
在设计器属性中,“代码生成策略”是否设置为“默认”?
-
不,不是。我已尝试更改它,但仍未生成表,并且出现数百个类似于此错误的错误 错误 117 类型“Mvc4.Models.DPR_MM”已包含“DPR_TS”的定义。
-
有什么错误?编辑您的问题并在其中添加一些示例。
-
好的,您是否在添加新表之前为现有表创建了类?如果您或其他人手动创建了一些类,然后您添加了新表,然后设置了代码生成策略,则可能是 VS 正在尝试为已创建的表生成类。跨度>
-
@Mamu:如果您使用 VS2012 并将代码生成策略更改为默认(从无)但没有删除 edmx 下的 tt 文件,则您的实体将生成两次。要么删除 tt 文件,要么将代码生成策略设置为 None
标签: visual-studio entity-framework visual-studio-2012