2016-07-29 19 views
0

Ich sah viele Artikel auf Join im Lambda-Ausdruck-Format, aber ich habe einen Fehler in Join.Wie verwende ich Join mit Lambda-Ausdruck in Asp MVC Entity Framework?

Ich habe zwei Tabelle eins ist tbl_payment und eine andere ist .
hat ID (Primärschlüssel), BILL_TYPE.
tbl_payment hat ID (Primärschlüssel), AMT, BILL_ID (Fremdschlüssel von tbl_bank).

Ich möchte alle Daten von tbl_payment und bill_type von tbl_bill in einem Abfrageergebnis erhalten.

Code:

ViewBag.requestHistory = 
       db.tbl_bill.Join(db.tbl_payment, x => x.ID, y => y.BILL_ID, 
    (x, y) => new {x.BILL_TYPE,y.ID,y.AMT,y.COMMENT,y.PAYMENT_METHOD,y.STATUS}).ToList(); 

Es ist ein Fehler gab:

The type arguments for method `Querable.Join<TOuter,.....> cannot be infrred from the usage`. 
+0

markieren Sie einen beliebigen Post als Ihre angenommene Antwort, so dass andere Leute diese Antwort bevorzugen würden –

Antwort

0

Ich ziehe die ausführliche Linq-Syntax verwenden für

var requestHistory = 
    from bill in db.tbl_bill 
    join payment in db.tbl_payment on bill.ID equals payment.BILL_ID 
    select new {bill.BILL_TYPE, payment.ID, etc} 
+0

Es gibt immer noch einen Fehler 'Typ Rückschluss fehlgeschlagen in den Aufruf zu 'Join''. –

+0

@ManishTiwari das könnte sein, weil einer Ihrer Fremdschlüssel Nullable ist siehe http://StackOverflow.com/Questions/7345039/Type-Inference-Failed-in-A-Call-Tojoin-On-Nullable-and-Non -nullable-int –

+0

Ich habe das getan, aber nichts Neues passiert. –

0

verbindet können Sie unter Syntax:

from t1 in db.Table1 
join t2 in db.Table2 on t1.field equals t2.field 
select new { t1.field2, t2.field3}