加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用实体框架获取数据的通用函数

发布时间:2020-12-15 04:18:19 所属栏目:百科 来源:网络整理
导读:我正在尝试使用Entity Framework创建一个通用函数来从DB获取数据.我传递了一个id作为检索的关键.为此,我编写了以下函数 public T GetT(object id) where T : class{ T item = null; using (var context = MyContext()) { item = context.SetT().Find(id); }
我正在尝试使用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;
}

该功能正常运行没有任何问题.但是,如果我没有将主键作为过滤器传递,我如何修改此函数来获取数据?

解决方法

您可以传递谓词表达式并使用.FirstOrDefault().
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");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读