模型第一个脚手架在ASP.NET MVC3应用程序中不起作用

时间:2011-10-23 21:59:21

标签: asp.net-mvc-3 entity-framework azure-sql-database scaffolding

我正在使用脚手架从数据库模型构建控制器。

后端的数据库是SQL Azure,但我不确定这是否重要。

我输入了连接字符串,并进行了测试,并且可以正常工作。我向我的模型添加了一个新的ADO.Net实体数据模型,它创建了映射,当我打开创建的模型时,我可以查看表结构和FK,看起来是正确的。

我构建了解决方案,因此可以使用新模型。

我确保拥有最新版本的Entity Framework,并从NuGet下载了MvcScaffolding。

当我使用Entity Framework添加具有读/写操作和视图的新控制器时,我收到以下错误:

未映射“Website.Models.App.Application”类型。 使用Ignore方法或NotMappedAttribute数据批注检查未明确排除类型。 验证类型是否已定义为类,不是原始类,嵌套类还是通用类,并且不从EntityObject继承。

当我尝试使用MvcScaffolding添加相同的控制器:具有读/写操作和视图的控制器,使用EF数据访问代码时,我不会在此步骤中收到错误,但是当我导航到新的索引视图时控制器我得到同样的错误。

有关导致此错误的原因的任何想法?我已经长期寻求解决方案,但一切都空了。谢谢。

3 个答案:

答案 0 :(得分:1)

安装Net DbContext Generator(如果Visual Studio 2010中的联机模板不可用)

答案 1 :(得分:0)

在实体设计器(.edmx文件)中,右键单击空白区域,单击“添加代码生成项”,选择“ADO.NET DbContext Generator”为其命名,单击“添加”。 >>不记得你为什么要这样做:-(但它为我解决了同样的问题。

答案 2 :(得分:0)

您可能在主类中嵌套了您的类:

static void Class main(string[] args)
{
    public Class YourClass()  // This is the wrong location, it's nested in the main class
    {
       ...
    }
}

public Class YourClass()  // This is the correct location
{
    ...
}