我是新來ASP.Net核心(但不是ASP.Net),我想知道什麼訪問現有的SQL Server數據庫的最佳途徑?ASP.Net核心 - 訪問數據庫的最佳實踐?
我跟着一些PluralSight教程,但他們似乎都使用Code First方法。
微軟確實有some example code顯示如何訪問現有的數據庫。
我問這個問題的原因是我們公司聘請了一家外部公司爲我們編寫一些代碼,他們的解決方案是通過存儲過程執行數據庫CRUD操作的所有全部。
所以,在SQL Server中,他們已經基本上在3個存儲過程的每一個應用程序使用的表,例如:
dbo.CustomerGet
dbo.CustomerDelete
dbo.CustomerUpdate
而且他們的ASP.Net核心代碼只包含負載小功能,像這樣:
public IEnumerable<Order> GetCustomerOrders(int customerID)
{
var itemsParams = new Dictionary<string, object>()
{
{ "@CustomerID", customerID}
};
var items = _dataAccess.GetData("dbo.CustomerOrdersGet", itemsParams,
reader => new Order()
{
OrderID = reader.GetInt32(0),
OrderName = reader.GetString(1),
// ...etc...
});
return items;
}
的GetData()
功能只是創建到數據庫的新連接,並調用存儲過程:
public IEnumerable<T> GetData<T>(string storedProcedureName, Dictionary<string, object> parameters)
{
using (var conn = new SqlConnection(_connectionString))
{
conn.Open();
return conn.Query<T>(storedProcedureName, parameters, commandType: CommandType.StoredProcedure);
}
}
他們的代碼在任何地方都沒有提及DbContext
。
他們的一些SP也只能做一個SELECT,但他們只需要一個PageNumber和PageSize參數,爲網頁獲取一頁數據,再加上一個「SortBy」參數。
再一次,在「我的世界」中,通過可管理的數據大小,我總是一次加載所有數據,並讓客戶端在顯示結果頁面後處理並處理排序。
我知道StackOverflow並不是問「你的意見是什麼......」的理想場所嗎?輸入問題,但我會很感激一些反饋。
這是一個真正的技術問題,這將是其他開發商,特別是考慮到ASP.Net核心如何利用新的(和不斷變化)是非常有用的。
我從來沒有用「普通」ASP.Net編寫這樣的代碼,並且想知道ASP.Net Core開發人員對這種編碼方法的看法。 (順便說一句,我對存儲過程非常舒服,我在內部應用程序中使用它們很多,但只是在數據密集型操作中,或者當我不希望大數據集被傳遞時大約在我的SQL Server和ASP.Net代碼之間,而且我從來沒有使用過存儲過程,例如,在一個表上執行一個bog標準的SELECT。)
這與'ASP.NET Core'無關,我的意思是在其他使用其他框架和編程語言的應用程序中發生了同樣的情況。 – Fabio
無論哪種方式都是可行的。兩者都有其優點和缺點。你說得對,SO *不是那個網站。 –