0

我是 ASP.NET 新手,对教程有疑问。

我在 VS2012 Express for Web 中创建了一个新的 MVC4 项目。我添加了一个带有 1 个表“Persons”的 SQL 数据库,并用一些随机测试数据填充它:

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 文件,我将“代码生成状态”激活为“标准”。刷新并单击 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”作为第一个参数。

我有点困惑,因为我按照教程中的解释做了。

4

2 回答 2

1

我认为这段代码有误:

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

没有构造函数需要两个字符串。您的第二个参数应该是 type DbCompiledModel。(见这里。)

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

于 2012-11-12T19:51:18.823 回答
0

显然问题是VS2012。这一切都适用于VS2010。

我再次从 asp.net/mvc 下载了安装程序并添加了 Visual Web Developer 2010 Express。安装 VS2010 和所有依赖项后,我再次尝试了本教程,现在一切正常。.Designer.cs 文件中没有错误代码 :)。

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

另外我要说:我也试过VS2012 Ultimate(完整的DVD版),但没有帮助。

于 2012-11-13T15:00:31.000 回答