2013-04-16 65 views
2

我正在使用EF 6 pre-3。實體框架6無法檢索元數據

產品型號:

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" /> 
+3

你還可以參考'System.Data.Entity'?這是一個新項目還是您使用現有項目升級到EF6? –

+0

是的,我擁有它。這是一個新項目。 – Alvin

+0

首先刪除對舊System.Data.Entity.dll的所有引用。 EF6是帶外版本,它包含了System.Data.Entity中的所有內容。 –

回答

2

我測試過了,實體框架6還不能做腳手架呢。

+1

什麼是腳手架? –

+2

ASP.NET腳手架是ASP.NET Web應用程序的代碼生成框架。 http://www.asp.net/visual-studio/overview/2013/aspnet-scaffolding-overview – John

0

我已經測試過,我認爲實體框架6並不穩定 。你可以重建項目,使用的NuGet安裝實體框架5

3

實體框架6不支持腳手架。使用NuGet包管理器控制檯來獲取實體框架5將解決這個問題。然後,您將能夠使用CRUD操作創建您的控制器。 Here是NuGet EF5的鏈接。

0

將EF升級到版本6.0.1,然後重新構建解決方案。應該在那之後工作。

0

ASP.NET MVC 4腳手架不支持實體框架6或更高版本。支持Entity Framework 6的腳手架是針對下一版ASP.NET MVC的。

您可以手動腳手架你的意見或使用實體框架5腳手架,一旦你腳手架您的應用程序,你可以使用實體框架6.