我有以下代码在基类中。
MyApp.MyDB = new MyApp.MyDB ();
IRepository<T> repo = new SubSonicRepository<T>(db);
CurrentTable = repo.GetTable();
var s = db.SelectColumns(columnList.ToArray()).
From(CurrentTable.Name).
OrderAsc(CurrentTable.Descriptor.Name);
我的想法是我的所有类都可以调用此方法。
我刚刚意识到我可能需要一个'where'语句,并且可能有许多列名称和值要测试。
最好的办法是什么?
更新:我发现这可以在下方使用,但这是最佳做法吗?
//WhereClause is a Dictionary<string, string>
int count = 0;
foreach (var whereitem in WhereClause)
{
if (count == 0)
{
s.Where(whereitem.Key).IsEqualTo(whereitem.Value);
}
else
{
s.And(whereitem.Key).IsEqualTo(whereitem.Value);
}
count++;
}
答案 0 :(得分:1)
这稍微简化了逻辑:对于where子句,执行以下操作:
s.Where(1).IsEqualTo(1);
对于你所有的其他地方,你可以使用And's。