In meinem Projekt, ich habe 2 Entity-Objekte (Delegierter für 2 Tabellen in db) wie folgt:Wie man Listenobjekt erhält, indem man nur die Liste <T> für 2 Entity verwendet?
- Tbl_Person {ID, Name}
- Tbl_Class {ID, Name, PersonID}
In DAL, erstelle ich zwei Klassen für diese Entitäten und Schreibfunktion GetList(): - Klasse Person:
012.351.public List<Tbl_Person> GetList()
{
using (var db = DatabaseHelper.DataContext())
{
try
{
var _t = (from info in db.**tbPerson**
select info).ToList();
return _t.ToList<**Tbl_Person**>();
}
catch (Exception ex)
{
throw ex;
}
}
}
Klasse MyClass:
public List<Tbl_Class> GetList()
{
using (var db = DatabaseHelper.DataContext())
{
try
{
var _t = (from info in db.**tbClass**
select info).ToList();
return _t.ToList<**Tbl_Class**>();
}
catch (Exception ex)
{
throw ex;
}
}
}
Wenn ich zwei Klassen verwenden, kann ich GetList() korrekt Liste Objekt zu erhalten. Aber es scheint, wir haben die Funktion GetList() hier doppelt. Was ich gerade will, ist nur 1 Funktion GetList() wie diese:
public List<T> GetList()
{
using (var db = DatabaseHelper.DataContext())
{
try
{
var _t = (from info in db.**????????**
select info).ToList();
return _t.ToList<**T**>();
}
catch (Exception ex)
{
throw ex;
}
}
}
ja. Du hilfst mir definitiv sehr. Ich kann jetzt mit dynamischen Tabelle Liste bekommen. Für Ihre erste Meinung, können Sie mir bitte ein Beispiel über versuchen/fangen?Denn wenn ich versucht habe, mit meinem Versuch/Fang zu debuggen, funktioniert es korrekt, nicht wie deine Meinung. Vielen Dank. –
@ThangLang: Wenn Sie den Stack-Trace protokollieren, wenn Sie 'throw ex;' haben, werden Sie die * ursprüngliche * Ausnahme nicht sehen - Sie werden diese Wurflinie bekommen. Das verliert Informationen. Die Verwendung von 'throw;' funktioniert besser ... aber wenn Sie * nur * eine Ausnahme fangen, um es erneut zu entfernen, entfernen Sie einfach den try/catch-Block vollständig und es wird den gleichen Effekt ohne das Durcheinander erzielen. –