2016-10-07 3 views
0

Ich bin sehr neu zu Generika. Ich rufe eine Methode auf, die eine Fremdschlüssel-ID an einen Datensatz von einer anderen Tabelle übergibt. hier ist mein CodeWie Datensatz mit Hilfe von Suchen in durch Fremdschlüssel suchen

public void Get<T>(long id) where T : class 
    { 
     var userdetails = Db.Set<T>().Find(id); 
    } 

Wo T jede Tabelle sein könnte und id Fremdschlüssel in T-Tabelle. Ich möchte Datensatz durch Fremdschlüssel mit Find-Methode suchen. Get-Methode wird von Orten aufgerufen, die verschiedene Tabelle mit einer Tabelle mit Fremdschlüssel verwandt.

+0

nur Rekord Suche Finden Sie durch Primärschlüssel weiß, dass ich das, aber ich möchte mit Fremdschlüssel –

Antwort

0

können Sie Ausdruck verwenden:

public void Get<T>(Expression<Func<T, bool>> predicate) where T : class 
{ 
    var userdetails = Db.Set<T>().FirstOrDefault(predicate); 
} 

dann rufen Sie es unten wie:

repo.Get<MyClass>(x=>x.FieldName == xxxx); 
+0

suchen Wie Pass-ID? –

+0

repo.Get (x => x.Id == xxxx); – Ziyad

+0

BTW, warum "void" in einer "Get" -Funktion zurückgeben? besser machen Sie es so: 'öffentliche T Get (.....) {zurück Db.Set () ......; } ' – Ziyad

Verwandte Themen