我正在尝试使用Entity Framework创建
一个通用
函数来从DB
获取数据.我传递了
一个id作为检索的关键.为此,我编写了以下
函数
public T Get<T>(object id) where T : class
{
T item = null;
using (var context = MyContext())
{
item = context.Set<T>().Find(id);
}
return item;
}
该功能正常运行没有任何问题.但是,如果我没有将主键作为过滤器传递,我如何修改此函数来获取数据?
您可以传递谓词表达式并使用.F
irstOrDefault().
public T Get<T>(Expression<Func<T,bool>> predicate)
where T : class
{
T item = null;
using (var context = MyContext())
{
item = context.Set<T>().FirstOrDefault(predicate);
}
return item;
}
var customer = context.Get<Customer>(x => x.Name == "Bob");