让我首先,我不确定这是否可能。我正在学习泛型,并在我的应用程序中有几个存储库。我试图制作一个采用泛型类型的接口并将其转换为所有存储库都可以继承的接口。现在到我的问题。试图在实体框架中使用泛型
public interface IRepository<T>
{
IEnumerable<T> FindAll();
IEnumerable<T> FindById(int id);
IEnumerable<T> FindBy<A>(A type);
}
是否有可能使用通用以确定找什么呢?
public IEnumerable<SomeClass> FindBy<A>(A type)
{
return _context.Set<SomeClass>().Where(x => x. == type); // I was hoping to do x.type and it would use the same variable to search.
}
为了澄清一点点,我正在考虑是一个字符串,int或任何类型,我想搜索。我所希望的是,我可以说x.something在东西等于传入的变量。
我可以使用
public IDbSet<TEntity> Set<TEntity>() where TEntity : class
{
return base.Set<TEntity>();
}
任何建议设置的存储库,以我的DbContext?
如果A是从SomeClass的派生,那么你可以使用OfType () – stevenrcfox
您的意思是找到一个类型的所有实体与FindBy ? –
@BehnamEsmaili没有我在想,我会通过我想搜索的类型:字符串,整数,日期时间等,然后,我会采取和搜索数据库中的类型通过 – Robert