2017-03-12 1 views
0

VS2015 C#을 사용하여 판매 및 재고 시스템을 개발하려고합니다. 그러나 오늘은 오류가 발생합니다. 내가 여기에 "CSE"를 호출 할 때'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); 

     } 

오류는 ->ObjectQuery<tblProduct>("SELECT VALUE P FROM tblProducts AS P", cse); 을 내가

인수이 무엇입니까 : 여기 내 코드의 'inventorysystem.db_22VapeStreetEntities'에서 '시스템에서 변환 할 수 없습니다 .Data.Objects.ObjectContext '

문제를 검색해 보았지만 해결책을 찾을 수 없습니다.

+0

을 'db_22VapeStreetEntities'의 기본 유형은 무엇입니까? – CodingYoshi

+0

죄송합니다. 정말 모르겠습니다. – Steven

+0

'db_22VapeStreetEntities'에 커서를 놓고'F12'를 눌러 그 타입이 무엇인지 확인하십시오. – CodingYoshi

답변

0

게시 한 작은 코드에서 엔티티 컨텍스트가 실제로 DBContext 일 수 있습니다. 이런 경우 이것이 당신이 DBContext를 사용하여 조건 필터 쿼리를 매개 변수화하는 새로운 방법을 조사해야하지만 도움이된다면

,이

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

을 시도합니다. 지금 당장 당신은 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