在查找方法通用存储库中按全名或电子邮件查找?

时间:2018-06-30 05:05:38

标签: model-view-controller core

我要使用全名或电子邮件而不是ID来在通用Repsoitory的查找方法中进行搜索? 如何在Find方法中使用FullName而不是ID进行搜索? 这是FindById方法

    public async Task<T> GetByIdAsync(object Id)
    {
        return await _dbContext.Set<T>().FindAsync(Id);
    }

我想在上面的代码中搜索全名吗? 请帮助

1 个答案:

答案 0 :(得分:1)

您可以向存储库添加通用函数,如下所示:

public T FindBy(Expression<Func<T, bool>> predicate)
{
    return Context.Set<T>().Where(predicate).FirstOrDefault();
}

然后在您的程序中,像这样调用它:

var person1 = MyGenericRepository.FindBy(r => r.FullName == "John Smith");
var person2 = MyGenericRepository.FindBy(r => r.Email == "jane.smith@gmail.com");

假设您的数据库集中有全名和电子邮件。