• Yeah we're using it. I say "we", they are; the movement to a complete n-tier thanks to OOP programming via vb.net and c# has led to a complete removal of business logic in the database. Now with NHibernate and EF, the trend is starting to remove stored procedures altogether! wth?

    I don't like it but we'll have to live with it, since that's what Microsoft is pushing these days. Not only does EF gen sql statements, it gen's a bunch of them to get what a simple SP could have gotten. And yes, you have to give db_datareader (and/or db_datawriter) to the login making the database calls. Moreover, the small, short, little queries that it calls - based on underlying object/impedance matching - are not complex. Therefore it has to do several of them in order to get, again, where a SP could have gotten. Go look at profiler the next time a middle-tier guy fires up a web page. Additionally, it is not capable of using the cool stuff available now in SQL 2005/2008, such as MERGE, CTE, etc. In order to get that you have to create stored procedures and manually map the attributes to EF to leverage that stuff. Finally, in order to keep a connection I have seen it wrap a SELECT statement inside of a transaction. Dumb.

    So, having said all of that, seriously, I can't say yay or nay; i'm a consultant, and some clients will use, and some will not. If I had my preference though...