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

问题描述 投票:0回答:1

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

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

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

c# asp.net-core-mvc
1个回答
2
投票

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

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 == "[email protected]");

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

© www.soinside.com 2019 - 2024. All rights reserved.