我有数据库操作的复杂应用程序我正在使用Dapper Micro-ORM,我想制作松散耦合的代码。请建议我如何使用界面而不是使用dapper的类。我有以下代码:
public IEnumerable<Category> Find()
{
using (IDbConnection _conn = GetConnection)
{
_conn.Open();
return _conn.Query<Category>("usp_Category", commandType: CommandType.StoredProcedure);
}
}
我想替换
public IEnumerable<ICategory> Find()
{
using (IDbConnection _conn = GetConnection)
{
_conn.Open();
return _conn.Query<ICategory>("usp_Category", commandType: CommandType.StoredProcedure);
}
}
你试图用Dapper
和C#
做的不正确:
_conn.Query<ICategory>("usp_Category", commandType: CommandType.StoredProcedure);
您正在尝试获取IEnumerable<ICategory>
,这将ICategory
,因为ICategory
是一个interface
,并且无法按照您的预期进行填充,您最多可以得到: IEnumerable<Category>
。您无法像具体类一样初始化ICategory interface
,这是不可能的
ICategory ic = new ICategory();
IEnumerable<ICategory>
不是正确的用法,既不能通过任何方式获取,也不能理解你需要理解interface
和concrete
类之间的区别及其用法