在我的项目,我有2个实体对象(代表在DB 2个表)如下:如何通过仅使用列表<T>获取2个实体的列表对象?
- Tbl_Person {ID,名称}
- Tbl_Class {ID,名称,是PersonID}
在DAL,创建)2类为这些实体,和写功能的GetList(: - 类人:
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;
}
}
}
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;
}
}
}
如果我用2班,我可以使用的GetList()来正确地获取列表对象。 但似乎我们在这里有重复函数GetList()。我只想为只有1功能的GetList()这样的:
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;
}
}
}
是的。你肯定会帮助我很多。 我现在可以用动态表获得列表。 您的第一个意见,请给我一个关于try/catch的例子吗?因为当我试图用我的try/catch进行调试时,它的工作原理是正确的,不会像你的意见那样发生。 非常感谢。 – 2012-04-09 10:33:28
@ThangLang:如果你在'throw ex'的时候记录堆栈跟踪,你将看不到'* original *'异常 - 你会得到那条线。这会丢失信息。只要使用'throw;'效果更好......但如果你只是*捕获一个异常来重新抛出它,那么就完全移除try/catch块,它将在没有任何混乱的情况下达到相同的效果。 – 2012-04-09 13:59:44