After looking over the latest Data Access Block, i’ll say it is better. But I still have my gripes:
- They are still calling PrepareCommand with an open connection. Even if you get the parameter out fo the parameter cache, the check with teh Database is still going to happen. I think a code-gen solution (a la Typed DataSets) for Command objects is a good idea (and Whidbey and I both have different ways to handle this).
- There is still no way to update multiple datatables within a single transaction.
- There are still issues with Table/Column Mappings in that they are being obfuscated from teh user therefore they’ll never know when they can use them.
It is better in a number of areas though:
- Much better connection management.
- More more generalized away from SQL Server. Complete usage of IDb* interfaces helps, but real database independence is a pipe-dream IMHO.
On the whole though, I’d still recommend not using it and rolling your own DataAccess object with some of these ideas, but not most of them.