我是ASP.NET新手并且遇到教程问题。
我在VS2012 Express for Web中创建了一个新的MVC4项目。 我添加了一个带有1个表“Persons”的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 Status”激活为“Standard”。刷新并单击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();
}
基地的错误:...行 在ContextOptions中。 不幸的是我没有英语VS,但它说的是:
最重要的是重载的System.Data.Entity.DbContext(string,System.Data.Entity.Infrastructure.DbCompiledModel)-Method有一些无效的参数
没有找到“ContextOptions”的定义,没有方法“ContextOptions”接受“MvcApplication7.Models.PersonsEntities1”作为第一个参数。
我有点困惑,因为我在教程解释中这样做了。
答案 0 :(得分:1)
我认为这段代码有误:
base("name=PersonsEntities1", "PersonsEntities1")
没有构造函数需要两个字符串。你的第二个参数应该是DbCompiledModel
类型。 (见here。)
现在,我不知道为什么你的设计师会生成无法编译的代码,所以我想知道你是否安装了错误版本的Entity Framework。
答案 1 :(得分:0)
显然问题是VS2012。这一切都适用于VS2010。
我已经从asp.net/mvc再次下载了安装程序并添加了Visual Web Developer 2010 Express。在安装VS2010和所有依赖项后,我再次尝试了该教程,现在一切正常。 .Designer.cs文件中没有错误的代码:)。
非常感谢Ann L.的支持。您的提示(安装了错误版本的Entity Framework)提示我尝试另一个VS版本。
另外我要说:我也试过VS2012旗舰版(完整的DVD版),但它没有用。