【发布时间】:2021-06-22 03:03:05
【问题描述】:
我怎样才能让我的存储库有一个通用接口,其中的搜索方法采用不同类型作为参数?
我试图给我的界面这个属性:
Task<IEnumerable<T>> Search(object Query, int? limit);
例如,UsersController 希望在使用 IRepository<User> 时发送 SearchUserQuery(属性 id、name 和 phoneNumber)作为参数。但是 CompanyController 在使用 IRepository<Company> 时需要发送 SearchCompanyQuery(带有属性 guid、名称、税号)作为参数。
问题
当我将 Search 方法添加到存储库时(参见下面的示例),它不会将 SearchUserQuery 识别为对象,并给我编译错误。
Task<IEnumerable<User>> Search(SearchUserQuery query, 100);
【问题讨论】: