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

Find By Full Name Or Email in Find Method Generic Repository?

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

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

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

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

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");

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