我想创建一个返回表的接口类型列表的通用方法。
例如return List<ITableInterface>
我的桌子是public class Table1 : ITableInterface
public class Table2 : ITableInterface
我想到制作这样的字典
Dictionary<string, ITableInterface> = new Dictionary<string, ITableInterface>
{
{ "Table1", Table1 },
{ "Table2", Table2 }
};
然后,使用dapper,获得返回的每个表的所有记录。
var tl = con.Query<T>("select * from " + tbl).ToList();
我的任何表都应使用
<T>
。我只是传递字符串。我知道上面的代码行不通,但是我无法理解。
最佳答案
Dictionary<string, ITableInterface> dict = new Dictionary<string, ITableInterface>
{
{ "Table1", new Table1() as ITableInterface },
{ "Table2", new Table2() as ITableInterface }
};
foreach (var key in dict.Keys)
{
var table = dict.GetValueOrDefault(key);
table?. // do something (question mark is there for null protection)
}
// if you just want a list of all your tables this is it
var listOfTables = dict.Keys.Select(_ => dict.GetValueOrDefault(_)).ToList();