我使用的是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" />
答案 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。