I'm belatedly thinking about LINQ, and LINQ to SQL. Stephen Walther urges "Death to SQL!" in his ASP.NET 3.5 book. Mike James of VSJ doesn't like databases either. Personally, I've never been as happy working in SQL compared to objects and recipes, but I thought there were good reasons for using Stored Procedures - which LINQ to SQL seems to blow out of the water.
Efficiency was my first concern. However everything that I've seen says that LINQ to SQL is sent to the db as an efficient request, ie the clever bits are done in the db, not in the application.
What about SQL Server query plans? Stored Procedures provide a security blanket - surely LINQ to SQL will mean that tables will have to be more open to modification, rather than just to SPs? SPs can get several things done, while LINQ to SQL boils down to just one statement at a time doesn't it? Providing a SP interface provides a good discipline (a database layer) - I think there's got to be a higher chance of some LINQ to SQL programmer not doing things correctly, eg forgetting to put something in a transaction.
Why haven't the database aficionados been up in arms? Has anyone done some analysis of how SPs compare with LINQ to SQL from a security and performance point of view?
Chris
PS I'm not utterly convinced that LINQ to SQL is easier to understand than SQL (unless it's hidden from you by the framework). You still have to know how to frame your queries so that they run in the best way.