2016-07-29 11 views
-2
public InventorySales getinvSales(int mgrId, int SalesId) 
{ 
    Managerset res = null; 


    InventorySales invSales = (from x in sbdb.tblSalesn.where(i => i.salesId == Sid) 
           join y in sbdb.tblProds on x.salesid equals y.salesid into resSales 

    select new InventorySales() 
             { 
              ProductName = x.productname, 
              Location = (xyz!= null) ? xyz.location:string.empty, 
              Manager = (res != null) ? res.Manager : string.empty // error line 
             }).FirstOrDefault(); 

    return invSales 
} 

Das ist, wie mein Code sieht,Nicht statische Methode erfordert ein Ziel C# Entity Framework

Manager = (res != null) ? res.Manager : string.empty 

verursacht einen Fehler, keine Beziehung zwischen dem tblManager und tblSales Tabelle gibt es

+3

Mögliche duplizieren mit: http://stackoverflow.com/questions/13717355/non-static-method-requires-a-target/ – Maarten

+0

Was bedeutet die erzeugte Abfrage aussehen? – Maarten

+0

Ich habe den Null-Check verwendet, immer noch gibt es den Fehler (res! = Null)? res.Manager: string.empty ** – python

Antwort

1

Sie können versuchen, um die res != null Entscheidung aus der Abfrage zu verschieben.

public InventorySales getinvSales(int mgrId, int SalesId) { 
    var res = from ins in sbdb.tblManager 
      where(managerId == mgrID) 
      select new Managerset() { 
      Manager = ins.Manager 
      }).firstOrDefault(); 

    InventorySales invSales = (from x in sbdb.tblSalesn.where(i=>i.salesId == Sid) 
           join y in sbdb.tblProds on x.salesid equals y.salesid into resSales 
           from xyz in result.DefaultIfEmpty() 
           select new InventorySales() 
           { 
            ProductName = x.productname, 
            Location = (xyz!= null) ? xyz.location:string.empty, 
            Manager = string.empty 
           }).FirstOrDefault(); 

    if (invSales != null && res != null) { 
     invSales.Manager = res.Manager; 
    } 

    return invSales 
}