我有一个应用程序,其中有一个要执行的数据库查询列表。
我知道它可以做类似的事情:
var results = _db.Contacts.SqlQuery( sQuery );
喜欢:
var results = _db.Database.SqlQuery<Contacts>( sQuery );
但在我的情况下,我只使用元数据。我该怎么做这样的事情:
string sBaseType = "Contacts";
var results = _db.Database.SqlQuery<sBaseType>( sQuery );
我取得了一些成功<object>
......它返回了我期望它返回的所有行,但它不是一个非常可用的形式。处理这种动态查询的最佳方法是什么?
编辑——我希望找到的是一些类似这样的机制:
var results = _db.Database[sBaseType].SqlQuery( sQuery );
这样我就可以避免看起来像这样的结构:
if (sBaseType == "Contacts") {
var results = _db.Contacts.SqlQuery( sQuery );
} else if (sBaseType == "Buildings") {
var results = _db.Buildings.SqlQuery( sQuery );
} else if (sBaseType == "Rooms") {
var results = _db.Rooms.SqlQuery( sQuery );
} else if (sBaseType == "Equipment") {
var results = _db.Equipment.SqlQuery( sQuery );
}
我不需要任何特别花哨的东西......我只是希望节省建立一个 100 多个元素的 if-elseif 块......