Network traffic: Stored Procedure need only serialize Stored Procedure name and argument data over the wire while LINQ sends the entire query. This can get really bad if the queries are very complex. However, LINQ's abstraction allows
Microsoft to improve this over time.

Less flexible: Stored Procedure can take full advantage of a database's featureset. LINQ tends to be more generic in it's support. This is common in any kind of language abstraction (e.g. C# vs assembler).

Recompiling: If you need to make changes to the way you do data access, you need to recompile, version, and redeploy your assembly. Stored Procedure can sometimes allow a DBA to tune the data access routine without a need to redeploy anything.

Best Regards,
Amy Peng

We are trying to better understand customer views on social support experience. Click HERE to participate the survey. Thanks!