2

我創建了一個項目是Visual Studio 2012,並通過「數據庫優先」方法建立了實體框架。但是,在映射到數據庫並生成應該由框架自動生成的我的Designer.cs文件之後,我最終會遇到大量的錯誤,而這些錯誤是我無法從中得到的。我已將該錯誤附加到您的評論和專業評論的txt文件中。實體框架設計器錯誤

請注意,我是.net框架的新手,尤其是EF領域。所以,如果你給我具體的答案,這將有助於我的學習曲線的其餘部分,我會很感激。

錯誤1的最好重載方法匹配 'System.Data.Entity.DbContext.DbContext(字符串,System.Data.Entity.Infrastructure.DbCompiledModel)' 具有一些無效參數C:\用戶\用戶\文件\ TRS \ TRSModel \ TRSEntityModel.Designer.cs 45 32 TRSDataModel

錯誤2參數2:無法從'字符串'轉換爲'System.Data.Entity.Infrastructure.DbCompiledModel'C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 45 57 TRSDataModel

錯誤3'TRSModel.TRSEntities'不包含'ContextOptions'的定義,也沒有擴展方法'ContextOptions'接受a C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 47 18 TRSDataModel

「TRSModel.TRSEntities」類型的第一個參數可以找到(您是否缺少使用指令或程序集引用?錯誤4'System.Data.Entity.DbContext.DbContext(string,System.Data.Entity.Infrastructure.DbCompiledModel)'的最佳重載方法匹配有一些無效參數C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel了.Designer.cs 54 55 TRSDataModel

錯誤5參數2:不能從 '字串' 到 'System.Data.Entity.Infrastructure.DbCompiledModel' C轉換:\用戶\用戶\文件\ TRS \ TRSModel \ TRSEntityModel.Designer .cs 54 78 TRSDataModel

錯誤6'TRSModel.TRSEntities'沒有包含'ContextOptions'的定義,也沒有找到接受類型'TRSModel.TRSEntities'的第一個參數的擴展方法'ContextOptions'(您是否缺少using指令或程序集引用? )C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 56 18 TRSDataModel

錯誤7最好的重載方法匹配'System.Data.Entity.DbContext.DbContext(System.Data.Common .DbConnection,bool)'有一些無效參數C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 63 59 TRSDataModel

錯誤8參數2:無法從'字符串'轉換爲'布爾' C:\ Users \ user \ Documents \ TRS \ TRSModel \ TRSEntityModel.Designer.cs 63 76 TRSDataModel 錯誤9'TRSModel.TRSEntities'不包含'ContextOptions'的定義,並且沒有找到接受'TRSModel.TRSEntities'類型的第一個參數的擴展方法'ContextOptions'(可以找到)(缺少using指令還是程序集引用? )C:\用戶\用戶\文件\ TRS \ TRSModel \ TRSEntityModel.Designer.cs 65 18 TRSDataModel

// Lines 10-17 
using System; 
using System.ComponentModel; 
using System.Data.EntityClient; 
using System.Data.Objects; 
using System.Data.Objects.DataClasses; 
using System.Linq; 
using System.Runtime.Serialization; 
using System.Xml.Serialization; 


// Lines 45-47 
public TRSEntities() : base("name=TRSEntities", "TRSEntities") 
{ 
    this.ContextOptions.LazyLoadingEnabled = true; 
    OnContextCreated(); 
} 

// Lines 54-56 
public TRSEntities(string connectionString) : base(connectionString, "TRSEntities") 
{ 
    this.ContextOptions.LazyLoadingEnabled = true; 
    OnContextCreated(); 
} 

// Lines 63-65 
public TRSEntities(EntityConnection connection) : base(connection, "TRSEntities") 
{ 
    this.ContextOptions.LazyLoadingEnabled = true; 
    OnContextCreated(); 
} 



// Error return by adding the public class TRSEntities to where Rene suggested 
Error 1 Missing partial modifier on declaration of type 'TRSModel.TRSEntities'; another partial declaration of this type exists C:\Users\user\Documents\TRS\TRSModel\TRSEntityModel.Designer.cs 33 18 TRSDataModel 
Error 2 'TRSEntities': member names cannot be the usere as their enclosing type C:\Users\user\Documents\TRS\TRSModel\TRSEntityModel.Designer.cs 40 30 TRSDataModel 
+0

請從各地線45-47 54-56 63-65從TSREnitityModel.Designer.cs – rene 2013-02-24 11:14:55

+0

請求的代碼塊中添加代碼發佈在問題區域。請看看。 – Sam 2013-02-24 11:27:00

+0

將「public class TRSEntities」行添加到第一個{還請 – rene 2013-02-24 11:40:08

回答

1

的問題是,因爲我最初懷疑。擴展的TRSEntities類是在錯誤的名稱空間中聲明的,因此無法標識導致TRSEntities類無法訪問此基類的方法的基本ObjectContext類。這是由於EF名稱從「TRSModel」更改爲「TRSEntityModel」,這顯然沒有在ER引擎內註冊,因此會根據以前的名稱空間自動生成該上下文文件。

我還不確定的一件事是如何讓這個名稱更改爲EF,以便它不會繼續假設舊名稱。

1

使用的NuGet到EF6 instaler但還必須安裝tools爲VS2012或VS2013 EF6

+0

我沒有EF 6.x DbContext Generator對象,直到我安裝了VS2012的工具。獲取它們:http://www.microsoft.com/en-us/download/details.aspx?id=40762 – davaus 2014-11-18 22:52:35