讓我首先,我不確定這是否可能。我正在學習泛型,並在我的應用程序中有幾個存儲庫。我試圖製作一個採用泛型類型的接口並將其轉換爲所有存儲庫都可以繼承的接口。現在到我的問題。試圖在實體框架中使用泛型
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