我有一个关于泛型列表的问题。实体框架泛型列表
假设我有一个包含三个表,用户表,Order表和项目表的数据库。
在C#代码,我希望有一个功能,叫的GetList得到所有他从三个表的一个记录。
如果我不使用泛型方法,我要创建3种不同的方法,它看起来像GetAllUsers(),GetAllOrders()和GetAllItems()。在这3种方法中,我将不得不编写linq来查询数据库。
我的问题是如何实现一个通用的方法。
我想使用EF 4.1。我知道如何使用NHibrate tho来做到这一点。
UPDATE
这个是什么?我发现它的另一篇文章中,它可以被用来获得一个单独的记录
public T GetSingleEntity<T>(Expression<Func<T,bool>> expression) where T:class
{
using (PersonalLinksEntities dbContext = new PersonalLinksEntities())
{
return dbContext.CreateObjectSet<T>().SingleOrDefault(expression);
}
}
PersonalLinksEntities由EF生成的,它是数据库第一款车型。
这是我如何调用该方法
public ActionResult Index()
{
var thisOne = base.GetSingleEntity<PersonalRecord>(r=>r.RecordID==1);
return View();
}
有趣的是,因为是由EF自动生成(数据库第一)我的DbContext,我甚至不有一个名为.GetTable()方法......这就是为什么我试图找到一种方式中高音。 – HorseKing 2012-02-22 19:13:42
// return session.Query();那是NHibrate,不是吗? –
HorseKing
2012-02-22 19:13:58
是的,只是在几个例子中弹出...我比EF更像一个NHIb家伙。这在很多方面都更好。 – swannee 2012-02-22 19:15:48