I'am developing a software based on Entity Framework to handle data in a MS SQL Server 2008 database.
I've just tried to insert some small data (about 2 Mb) from my progam to the database : the performance are very bad ! It takes more than 1 minute to insert these datas !
I've try to generate pre-compiled views, I've got the same results :-(
All my code use a business layer (automatically generated from .edmx file with T4 template) to manage data in a service layer. It is very pratical to navigate in the relations of objects.
How can I improve the performance of these inserts with Entity Framework ?
Also, before inserting data in database with SaveChanges() method, I fill my object context with AddObject() method. I add about 100 000 small objects (about 2 Mb) to my object context with AddObject() : it takes a very long time (more than 10 minutes) !
How can I decrease this time ?
My program must save more than 50 Mb in database in less than 2-3 minutes ? Do you think it will be possible with EF ?
You could use the Entity Framework Profiler to check what SQL is being generated. This tool has a 30 day free trial. It also claims that it can do "Analysis and detection of common pitfalls when using Entity Framework".
There is also this article on EF tuning
Based on your edits EF is not the way to go. You need to do a bulk insert in order to get the data in that fast. Have a look at this link where I helped someone reduce load time from 10 hours to 6 mins.