0
我想使用PetaPoco ORM從MySQL表中獲取數據。以下是獲取一條記錄的示例代碼:有沒有一種方法來概括petapoco選擇查詢
public void ShowEmployerDetails()
{
using (var db = new PetaPoco.Database ("mysql_mydb")) {
try {
var employers = db.Query <Employers> ("SELECT * FROM Employer WHERE id = 123456789");
foreach(var e in employers) {
return e.EmployerName;
}
} catch (Exception ex) {
log.Error (ex.Message);
}
}
}
需要在db.Query函數中傳遞實體類型。對於每個數據庫表,我們需要定義實體。在這種情況下,實體類型是<Employers>
和代碼是:
public class Employers
{
public int id { get; set; }
public string EmployerName { get; set; }
}
有,我們也可以概括上述選擇查詢什麼辦法?舉例來說,我打算使用單查詢等,以獲取輸出:
PetaPocoQueryEntities <Employers>.GetDataFromEntities ("SELECT * FROM Employer WHERE id = 123456789", "EmployerName");
和查詢可能是類似下面,其中實體類型可以爲通用類型T被通過,不知道是否有某種方式提供列命名和動態獲取列值:
public static class PetaPocoQueryEntities <T>
{
public static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public static T GetDataFromEntity (string sqlQuery, string colName)
{
using (var db = new PetaPoco.Database ("mysql_mydb")) {
try {
var entityResults = db.Query<T> (sqlQuery);
foreach (var result in entityResults) {
log.Info(colName + " value is " + result.colName);
}
} catch (Exception ex) {
log.Error (ex.Message);
}
return colName;
}
}
}
請幫助。