2

我是 MVC 3 的新手,正在努力让 Entity Framework 5 工作。(我尝试炸弹的所有演示 - 所以,我最终甚至尝试了从 VS2010 中链接到的控制台演示,网址为http://msdn.microsoft.com/en-us/data/jj206878

我已经引用了“EntityFramework 5.0.0”。

我在演示中使用了 SQL Express(但必须手动设置表,因为脚本无法在“查询”打开设计器的 VS2010 中运行)。

但是,当我仔细按照此 MSDN Console EF Demo 中的所有步骤操作时,我收到以下 9 个错误:

Error   1   'DatabaseFirstSample.BloggingContext' does not contain a definition for 'SaveChanges' and no extension method 'SaveChanges' accepting a first argument of type 'DatabaseFirstSample.BloggingContext' could be found (are you missing a using directive or an assembly reference?)   C:\vb08sbs\DatabaseFirstSample\DatabaseFirstSample\Program.cs   15  12  DatabaseFirstSample
Error   2   'DatabaseFirstSample.BloggingContext': type used in a using statement must be implicitly convertible to 'System.IDisposable'    C:\vb08sbs\DatabaseFirstSample\DatabaseFirstSample\Program.cs   9   14  DatabaseFirstSample
Error   5   'object' does not contain a constructor that takes 1 arguments  C:\vb08sbs\DatabaseFirstSample\DatabaseFirstSample\BloggingModel.Context.cs 19  15  DatabaseFirstSample
Error   4   The type or namespace name 'DbContext' could not be found (are you missing a using directive or an assembly reference?) C:\vb08sbs\DatabaseFirstSample\DatabaseFirstSample\BloggingModel.Context.cs 16  44  DatabaseFirstSample
Error   6   The type or namespace name 'DbModelBuilder' could not be found (are you missing a using directive or an assembly reference?)    C:\vb08sbs\DatabaseFirstSample\DatabaseFirstSample\BloggingModel.Context.cs 23  49  DatabaseFirstSample
Error   8   The type or namespace name 'DbSet' could not be found (are you missing a using directive or an assembly reference?) C:\vb08sbs\DatabaseFirstSample\DatabaseFirstSample\BloggingModel.Context.cs 28  16  DatabaseFirstSample
Error   9   The type or namespace name 'DbSet' could not be found (are you missing a using directive or an assembly reference?) C:\vb08sbs\DatabaseFirstSample\DatabaseFirstSample\BloggingModel.Context.cs 29  16  DatabaseFirstSample
Error   3   The type or namespace name 'Infrastructure' does not exist in the namespace 'System.Data.Entity' (are you missing an assembly reference?)   C:\vb08sbs\DatabaseFirstSample\DatabaseFirstSample\BloggingModel.Context.cs 14  30  DatabaseFirstSample
Error   7   The type or namespace name 'UnintentionalCodeFirstException' could not be found (are you missing a using directive or an assembly reference?)   C:\vb08sbs\DatabaseFirstSample\DatabaseFirstSample\BloggingModel.Context.cs 25  23  DatabaseFirstSample

我显然遗漏了一些东西 - 但那可能是什么我非常感谢一些帮助。

或者,我知道 EF 会导致严重的膨胀并且因此速度很慢,并且已被建议宁愿避免使用 EF 而只使用数据类 - 但我找不到任何解释如何将这种方法作为更有效的方法使用 EF 的替代方案(因为 EF 方法似乎在 MS 站点上到处都是)。

我继承了一个使用 SQL Server 2005 数据库的旧版 ASP 应用程序,该数据库最近受到 SQL 注入的影响,我想使用带有 HTML 5 的 MVC 3 和带有响应式设计的 CSS3 进行改造 - 但我一直在寻找任何工作方法使用 MVC 中实际工作的现有数据库。

4

2 回答 2

1

我得到了它的工作VS2010,但也有实体框架问题的大戏。

在得出搜索结果时,Nuget 中存在不一致之处DbContext。此外,SP1为 VS2010 安装也有帮助。

我的默认语言最初设置为 VB.NET,必须将其更改为 C# 才能使演示工作。

于 2012-12-02T10:22:49.207 回答
0

我无法回答自己的问题,但在编辑我的问题以修复我从侧边栏复制并更改为我的 URL 的误导性链接说明后,我找到了一个可能的原因 - (显示不正确)和同时将标签更改为比 C# 更合适 - (我最终绝望地从大量完全不合适的标签中选择了它,只是为了在我们缓慢的 Internet 连接超时之前发布帖子)。

我曾尝试使用Entity Framework作为标签,但我的帖子无法上传,因为我被告知我没有足够的积分来创建新标签,而 C# 是我可以看到选择的唯一半可用标签。

但是,在我编辑后尝试将 Entity-Framework 作为新标签后,我遇到了几个 Entity-Framework 版本,并且 entity-framework-5 有一个关于使用 Framework 4.5 的说明(我仍在使用 Framework 4)。

在通过 NuGet 获取实体框架时,我注意到没有提到需要框架 4.5 - 它只是给了我实体框架 5,我认为至少我会拥有最新版本!(我又看了一遍,它列出了“NO DEPENDENCIES”!!!)

现在看来我需要卸载 Entity Framework 5 并获取适用于 Framework 4 的旧 Entity Framework,然后它可能有机会工作!

PS - 我无法卸载 Entity Framework 5,但确实设法追踪到最新的先前稳定版本是 4.3.1,虽然我无法通过 NuGet 获得它,但我确实设法通过命令行安装它 -你瞧——上面列出的所有 9 个错误都消失了,突然控制台实体框架演示工作了——终于!

于 2012-09-14T07:48:54.480 回答