Subsonic 使用大量where子句创建亚音速动态查询
我有一个基类中的以下代码Subsonic 使用大量where子句创建亚音速动态查询,subsonic,subsonic3,Subsonic,Subsonic3,我有一个基类中的以下代码 MyApp.MyDB = new MyApp.MyDB (); IRepository<T> repo = new SubSonicRepository<T>(db); CurrentTable = repo.GetTable(); var s = db.SelectColumns(columnList.ToArray()). From(Curr
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);
MyApp.MyDB=new MyApp.MyDB();
i预期回购=新的子存储库(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++;
}
//where子句是一个字典
整数计数=0;
foreach(Where条款中的var Where项)
{
如果(计数=0)
{
s、 其中(whereitem.Key).IsEqualTo(whereitem.Value);
}
其他的
{
s、 和(whereitem.Key).IsEqualTo(whereitem.Value);
}
计数++;
}
这稍微简化了逻辑:对于where子句,执行如下操作:
s.Where(1).IsEqualTo(1);
对于所有其他where项,您可以使用And。这稍微简化了逻辑:对于where子句,执行如下操作:
s.Where(1).IsEqualTo(1);
对于所有其他where项,您可以使用And