好的,所以我對如何在標題中措辭零想法,所以我將在這里解釋我想要實作的目標。
我有一個 .cs 檔案,其中包含使用下面列出的 dapper 的連接代碼。
namespace DBConnector
{
public static class Helper
{
public static string CnnVal(string name)
{
return ConfigurationManager.ConnectionStrings[name].ConnectionString;
}
}
public class DataAccess<T>
{
public List<T> GetInfo(string query, object parameters = null)
{
using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.CnnVal("ProxyRPDB")))
{
return connection.Query<T>(string, object);
}
}
}
}
我想要實作的是通過上述代碼從不同的 .cs 檔案執行查詢。但!我試圖讓上面的代碼接受來自多個 .cs 檔案的查詢執行,這些檔案都需要來自不同表的不同資料。我一直在努力尋找資訊……所以這真的是最后的手段。我正在為 .NET 4.5.2 使用 Dapper。
uj5u.com熱心網友回復:
首先,我們需要修復方法中的基本語法錯誤GetInfo():
public static class DataAccess
{
public static IEnumerable<T> GetInfo<T>(string query, object parameters = null)
{
using (var connection = new System.Data.SqlClient.SqlConnection(Helper.CnnVal("ProxyRPDB")))
{
return connection.Query<T>(query, parameters);
}
}
}
現在,假設您在其他 *.cs 檔案中有正確的參考和 using 指令,您可以在這些檔案中執行以下操作:
var results = DataAccess.GetInfo<MyTableType>("SELECT * FROM [MyTable]");
foreach(var record in results)
{
//...
}
Dapper 現在將嘗試將查詢結果映射到MyTableType類的實體,因此請確保您已經創建了這樣的類。
請注意,這適用于 IEnumerable 而不是 List。如果你真的需要一個 List(提示:你通常不需要,并且 IEnumerable 可以表現得更好)你總是可以.ToList()在函式呼叫的末尾放一個:
var results = DataAccess.GetInfo<MyTableType>("SELECT * FROM [MyTable]").ToList();
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/330734.html
上一篇:插入多個物體(一個接一個,而不是一起),使框架嘗試覆寫第一個
下一篇:將資料從視圖傳遞到控制器時出錯
