How to use Dapper instead of entity framework in asp.net mvc, core, web api
मैं आपको ASP.NET के बारे में और Dapper के उपयोग के बारे में समझाता हूं:
Dapper एक lightweight ORM (Object-Relational Mapper) है जो .NET के लिए बनाया गया है। यह डेटाबेस के साथ काम करने को आसान बनाता है। यहाँ कुछ प्रमुख फायदे हैं:
- स्पीड और परफॉरमेंस
- Dapper बहुत तेज़ है क्योंकि यह मिनिमल ORM है
- यह Entity Framework जैसे भारी ORM से कई गुना फास्ट है
- डायरेक्ट SQL क्वेरी के जितना ही परफॉरमेंस देता है
- सरल उपयोग
- आसान सिंटैक्स
- कम कोड लिखना पड़ता है
- SQL क्वेरी का पूरा कंट्रोल मिलता है
- ASP.NET के साथ इंटीग्रेशन
- ASP.NET MVC या Web API में आसानी से उपयोग किया जा सकता है
- डेटाबेस ऑपरेशंस को कंट्रोलर्स में सीधे इम्प्लीमेंट कर सकते हैं
- फ्लेक्सिबिलिटी
- स्टोर्ड प्रोसीजर का सपोर्ट
- कॉम्प्लेक्स क्वेरीज़ लिख सकते हैं
- डायनामिक पैरामीटर्स का उपयोग कर सकते हैं
How to use dapper
- Dapper
- Microsoft.Data.SqlClient.
,
appsettings.json
"ConnectionStrings": {
"DefaultConnection": "Server=DESKTOP-9M9EDAA\\SQLEXPRESS; Database=DbAbpDec; Trusted_Connection= True; MultipleActiveResultSets=True; TrustServerCertificate=True;",
"providerName": "System.Data.SqlClient"
}
using System.Data.SqlClient;
using Dapper;
using System.Configuration;
using System.Web.Configuration;
public class DatabaseOperations
{
//private readonly string _connectionString;
// Then use either
string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
// Or
string connectionString = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
public DatabaseOperations(string connectionString)
{
_connectionString = connectionString;
}
// SqlCommand with ExecuteReader example
public List<Product> GetProductsWithCommand()
{
var products = new List<Product>();
using (var connection = new SqlConnection(_connectionString))
{
connection.Open();
using (SqlCommand cmd = new SqlCommand("SELECT * FROM Products", connection))
{
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
var product = new Product
{
ProductId = Convert.ToInt32(reader["ProductId"]),
Name = reader["Name"].ToString(),
Price = Convert.ToDecimal(reader["Price"])
};
products.Add(product);
}
}
}
}
return products;
}
// SqlCommand with Parameters
public void InsertProductWithCommand(Product product)
{
using (var connection = new SqlConnection(_connectionString))
{
connection.Open();
using (SqlCommand cmd = new SqlCommand("INSERT INTO Products (Name, Price) VALUES (@Name, @Price)", connection))
{
cmd.Parameters.AddWithValue("@Name", product.Name);
cmd.Parameters.AddWithValue("@Price", product.Price);
cmd.ExecuteNonQuery();
}
}
}
// Stored Procedure with SqlCommand
public void UpdateProductWithStoredProc(Product product)
{
using (var connection = new SqlConnection(_connectionString))
{
connection.Open();
using (SqlCommand cmd = new SqlCommand("sp_UpdateProduct", connection))
{
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ProductId", product.ProductId);
cmd.Parameters.AddWithValue("@Name", product.Name);
cmd.Parameters.AddWithValue("@Price", product.Price);
cmd.ExecuteNonQuery();
}
}
}
// Transaction with SqlCommand
public void InsertMultipleProductsWithTransaction(List<Product> products)
{
using (var connection = new SqlConnection(_connectionString))
{
connection.Open();
using (SqlTransaction transaction = connection.BeginTransaction())
{
try
{
using (SqlCommand cmd = new SqlCommand("INSERT INTO Products (Name, Price) VALUES (@Name, @Price)", connection, transaction))
{
foreach (var product in products)
{
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@Name", product.Name);
cmd.Parameters.AddWithValue("@Price", product.Price);
cmd.ExecuteNonQuery();
}
}
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}
}
}
}
How to use Dapper instead of entity framework in asp.net mvc, core, web api
Reviewed by Rikesh
on
December 27, 2024
Rating:
No comments: