实体框架6无法检索元数据

时间:2013-04-16 16:07:52

标签: c# entity-framework entity-framework-6

我使用的是EF 6 pre-3。

产品型号:

namespace ProductStore.Models
{
    public class Product
    {
        [ScaffoldColumn(false)]
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
        public decimal Price { get; set; }
        public decimal ActualCost { get; set; }
    }

}

当我创建控制器时,出现以下错误:

Unable to retrieve metadata for 'ProductStore.Models.Project'. Unable to cast object of type 'System.Data.Entity.Core.Objects.ObjectContext' to type 'System.Data.Objects.ObjectContext'.

上下文是:

namespace ProductStore.Models
{
    public class OrdersContext : DbContext
    {
        public OrdersContext()
            : base("name=OrdersContext")
        {
        }

        public DbSet<Product> Products { get; set; }
        public DbSet<Order> Orders { get; set; }
        public DbSet<OrderDetail> OrderDetails { get; set; }
    }
}

我的连接字符串是:

<add name="OrdersContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Orders.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />

5 个答案:

答案 0 :(得分:3)

实体框架6不支持脚手架。使用NuGet包管理器控制台获取Entity Framework 5将解决此问题。然后,您将能够使用CRUD操作创建控制器。 Here是NuGet EF5的链接。

答案 1 :(得分:2)

我已经测试过,Entity Framework 6还不能做脚手架。

答案 2 :(得分:0)

我也测试了,我认为实体FrameWork 6不稳定 。你可以重建项目,使用Nuget安装Entity FrameWork 5。

答案 3 :(得分:0)

将EF更新到6.0.1版,然后重建您的解决方案。应该在那之后工作。

答案 4 :(得分:0)

ASP.NET MVC 4脚手架不支持Entity Framework 6或更高版本。支持Entity Framework 6的脚手架是针对下一版ASP.NET MVC的目标。

您可以手动构建视图或使用Entity Framework 5进行搭建,一旦您构建了应用程序,就可以使用Entity Framework 6。