ASP.NET:自动化的.designer.cs文件中的错误



我是ASP.NET的新手,并且在教程中有问题。

我已经在VS2012 Express中为Web创建了一个新的MVC4项目。而且我添加了一个带有1个表"人"的SQL数据库,并用一些随机的testdata填充了它:

Id        int (primary key, is identity=true)
name      varchar(50)
birthdate date 

adam  01.01.2001
berta 02.02.2002

作为我使用ado.net实体数据模型的模型,将其命名为" PersonsModel.edmx"并将其用于它的personsDatabase。

要查看personsmodel.designer.cs文件,我将" codegeneration状态"激活为"标准"。刷新并单击personsModel.designer.cs文件。但是在这个文件中,我错误...所以我想在控制器中使用类似的东西:

homecontroller.cs:

PersonsEntities1 db = new PersonsEntities();
db.person... 

但是它不起作用,我认为(?)是因为.designer.cs文件中的错误。

personsmodel.designer.cs:例如:

public PersonsEntities1() : base("name=PersonsEntities1", "PersonsEntities1")
{
        this.ContextOptions.LazyLoadingEnabled = true;
        OnContextCreated();
}

基地中的错误:...线在上下文中。不幸的是,我没有英语,但它说了类似:

最好的符合für超载system.data.entity.dbcontext(string,system.data.entity.infrastructure.dbcompiledmodel)-Method具有一些无效的参数

且没有找到"上下文选择"的定义,没有方法"上下文选择"接受" mvcapplication7.models.personsentities1"作为第一个参数。

我有点困惑,因为我像在所解释的教程中一样做到了。

我认为此代码是错误的:

base("name=PersonsEntities1", "PersonsEntities1")

没有构造函数需要两个字符串。您的第二个参数应该为DbCompiledModel类型。(请参阅此处。)

现在,我不知道为什么您的设计师会生成无法编译的代码,因此我想知道您是否已安装了实体框架的错误版本。

显然问题是VS2012。它都与VS2010一起使用。

我已经从ASP.NET/MVC下载了安装程序,并添加了Visual Web Developer 2010 Express。安装VS2010和所有依赖关系后,我再次尝试了该教程,现在所有这些都可以正常工作。.designer.cs文件中没有错误的代码:)。

非常感谢Ann L.的支持。您的提示(已安装了实体框架的错误版本)提示我尝试另一个VS版本。

我还说:我还尝试了VS2012 Ultimate(完整的DVD版本),但没有帮助。

最新更新