2017-03-12 51 views
0

我正在嘗試使用VS2015 c#開發銷售和庫存系統。 但是,今天我收到錯誤。這裏是我的代碼:錯誤從'DataBaseEntities'轉換爲'System.Data.Objects.ObjectContext'

public partial class Form4 : Form 
{ 

    private BindingList<tblProduct> products = new BindingList<tblProduct>(); 

    private db_22VapeStreetEntities cse = new db_22VapeStreetEntities(); 

    public Form4() 
    { 
     InitializeComponent(); 

     lstProductsChosen.DataSource = products; 
     lstProductsChosen.DisplayMember = "Description"; 

     createTabbedPanel(); 

    } 

    private void AddProductsToTabbedPannel() 
    { 
     foreach (TabPage tp in tabControl1.TabPages) 
     { 
      ObjectQuery<tblProduct> filteredProduct = new ObjectQuery<tblProduct>("SELECT VALUE P FROM tblProducts AS P", cse); 

     } 

的錯誤是,當我稱之爲「CSE」在這裏 - >ObjectQuery<tblProduct>("SELECT VALUE P FROM tblProducts AS P", cse); 我收到

參數2:無法從「inventorysystem.db_22VapeStreetEntities」到「系統轉換.Data.Objects.ObjectContext'

我試過尋找問題,但我看不到任何解決方案。

+0

「db_22VapeStreetEntities」的基本類型是什麼? – CodingYoshi

+0

對不起,我不知道。 – Steven

+0

將光標置於'db_22VapeStreetEntities'上並按下'F12'並查看該類型是什麼。 – CodingYoshi

回答

0

從你發佈的小代碼可能你的實體上下文實際上是一個DBContext。

如果是這樣的話,那就試試這個

foreach (TabPage tp in tabControl1.TabPages) 
    { 
     ObjectQuery<tblProduct> filteredProduct = new ObjectQuery<tblProduct>("SELECT VALUE P FROM tblProducts AS P", ((IObjectContextAdapter)cse).ObjectContext); 
    } 

如果這有助於雖然你應該調查新的方法使用的DbContext條件過濾器參數化查詢。我認爲現在你有其他的原因留在ObjectContext模式。

如果你有一個的DbContext,試試這個Linq的語句:

IQueryable<tblProduct> filteredProduct = cse.tblProducts.AsQueryable(); 

或者因爲你已經忽略你正在使用我們可以嘗試這樣的事情的實際過濾器語法:

string filterValue = "value1"; 
IQueryable<tblProduct> filteredProduct = cse.tblProducts.Where(p => p.FilterColumn == filterValue); 
+0

我應該使用System.Data.Entity.Infrastructure嗎?或生成接口? – Steven

+0

我要說是的... ObjectQuery有特定的用例,它們通常限制在您的UI控件想在運行時動態生成查詢或過濾語句的時候。我將編輯答案以顯示替代合成文本。再次,我仍然假設你的代碼庫很多。 –

+0

我用'System.Data.Entity.Infrastructure;'併發生錯誤:_Interface由可以提供IObjectContextAdapter.ObjectContext實例的對象實現。 System.Data.Entity.DbContext類實現此接口以提供對底層ObjectContext的訪問。參數2:無法從'System.Data.Entity.Core.Objects.ObjectContext'轉換爲'System.Data.Objects.ObjectContext'_ – Steven