Which one gives better performance? ADO.NET or Entity Framework.
These are the two method I want to analyze.
ADO.NET Test Method
public void ADOTest()
{
Stopwatch stopwatch = Stopwatch.StartNew();
using (SqlConnection con = new SqlConnection(connection))
{
string Query = "select * from Product ";
SqlDataAdapter da = new SqlDataAdapter(Query, con);
DataSet ds = new DataSet();
con.Open();
da.Fill(ds);
DataView dv = ds.Tables[0].DefaultView;
}
stopwatch.Stop();
Console.WriteLine("ADO.NET Time Elapsed={0}", stopwatch.Elapsed);
}
Entity Framework Test Method
public void EFTest()
{
Stopwatch stopwatch = Stopwatch.StartNew();
var list = _OnlineStoreEntities.Products.ToList();
stopwatch.Stop();
Console.WriteLine("Entity Framework Elapsed={0}", stopwatch.Elapsed);
}
Result in first time execution
When I ran this above method in more than 100 times. The average execution time is shown in the image:
ADO.NET took only 2 milliseconds whether Entity Framework took more than 4 milliseconds.
Result in second time execution
When I ran this method again and again in single run. The average execution time between ADO.NET and EF is not much more:
Question
- I think EF gives very worst performance in first time execution Then why we use EF?
- Why EF second time execution was faster than first time execution?
question from:
https://stackoverflow.com/questions/15107992/performance-analyze-ado-net-and-entity-framework 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…