Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio &引用;“从数据库更新模型”;_Visual Studio_Entity Framework_Visual Studio 2012 - Fatal编程技术网

Visual studio &引用;“从数据库更新模型”;

Visual studio &引用;“从数据库更新模型”;,visual-studio,entity-framework,visual-studio-2012,Visual Studio,Entity Framework,Visual Studio 2012,我正在使用Visual Studio,正在开发一个基于MVC的应用程序。我正在尝试向我的模型中添加一些表。我使用了选项“从数据库更新模型”。新表出现在我的edmx文件中。我已重建了解决方案,但缺少新表的类。每次我想添加新表时,是否都有生成类的技巧?还是我必须手动操作? 当我将“代码生成策略”设置为“默认”时,我会收到数百个与此类似的错误Error 117类型“Mvc4.Models.DPR\u MM”已经包含了“DPR\u TS”的定义 我把整个模型都拆了。在搜索整个解决方案的DPR_MM时,我

我正在使用Visual Studio,正在开发一个基于MVC的应用程序。我正在尝试向我的模型中添加一些表。我使用了选项“从数据库更新模型”。新表出现在我的edmx文件中。我已重建了解决方案,但缺少新表的类。每次我想添加新表时,是否都有生成类的技巧?还是我必须手动操作? 当我将“代码生成策略”设置为“默认”时,我会收到数百个与此类似的错误Error 117类型“Mvc4.Models.DPR\u MM”已经包含了“DPR\u TS”的定义
我把整个模型都拆了。在搜索整个解决方案的
DPR_MM
时,我得到以下结果: 查找所有“DPR_MM”、子文件夹、查找结果1、整个解决方案“

C:\\Mvc4\Controllers\HomeController.cs(41):var DPR\u MM=从ctx.DPR\u MM中的d开始
C:\\Mvc4\Controllers\HomeController.cs(45):var arr=新对象[DPR_MM.Count()];
C:\\Mvc4\Controllers\HomeController.cs(47):foreach(变量d以DPR\u MM表示)
C:\\Mvc4\Models\Model1.edmx(9):
C:\\Mvc4\Models\Model1.edmx(45):
C:\\Mvc4\Models\Model1.edmx(366):
C:\\Mvc4\Models\Model1.edmx(389):
C:\\Mvc4\Models\Model1.edmx(715):
C:\\Mvc4\Models\Model1.edmx(716):
C:\\Mvc4\Models\Model1.edmx(717):
C:\\Mvc4\Models\Model1.edmx.diagram(8):
匹配行:11个匹配文件:3个搜索的文件总数:168
所以我没有看到任何DPR_MM类。我做错了什么?编辑

现在我知道您遇到了一个错误,请查看生成的代码(您甚至可以对类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所说的那样放置额外的文件。或者你可以用谷歌搜索一下:





初始答案


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

I查看了-新表不存在。现在,我也尝试使用选定的表。不走运。对不起,我以为就这样了。现在还没有VS 2012,否则我会检查,不过你应该可以在YourModel.edmx下查看YourModel.designer.cs并查看实际的类。验证是否存在与您添加的表匹配的类,项目中是否没有错误,并执行clean和rebuild.NP!顺便说一句:我写道,我已经重建了解决方案,没有任何运气!如果这不起作用,我会删除你的模型并重新阅读。这只需要一分钟左右,可能比排除奇怪的错误更容易。你说得对。但这仍然让我很恼火,嗯…:oS!在设计器属性上,“代码生成策略”是否设置为“默认值”?不,不是。我试图更改它,但表仍然没有生成,并且我得到了数百个类似于此错误的错误117类型“Mvc4.Models.DPR_MM”已经包含“DPR_TS”的定义。错误是什么?编辑您的问题,并在其中添加一些示例。好的,在添加新表之前,您是否为现有表创建了类?如果您或其他人手动创建了某些类,然后添加了新表,然后设置了代码生成策略,则可能是VS正在尝试为已创建的表生成类。@Mamu:如果您使用VS2012并将代码生成策略更改为默认值(从“无”)但未删除edmx下的tt文件。您的实体将生成两次。删除tt文件或将代码生成策略设置为“无”
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  
    {
    ...
    }
}