<p>I am currently architecting a small CRUD applicaton. Their database is a huge mess and will be changing frequently over the course of the next 6 months to a year. What would you recommend for my data layer:</p>

<p>1) ORM (if so, which one?)</p>

<p>2) Linq2Sql</p>

<p>3) Stored Procedures</p>

<p>4) Parametrized Queries</p>

<p>I really need a solution that will be dynamic enough (both fast and easy) where I can replace tables and add/delete columns frequently.</p>

<p>Note: I do not have much experience with ORM (only a little SubSonic) and generally tend to use stored procedures so maybe that would be the way to go. I would love to learn Ling2Sql or NHibernate if either would allow for the situation I've described above.</p>

NHibernate
, but only if you would be amenable to having an object-first approach wherein you define your classes, and then define your desired table structure in the mapping files, and then create a database schema using NHibernate's built in schema generation classes.
For doing it the other way around (e.g., you have a bunch of tables and then you base your object design on that) I've found
MyGeneration
+ NHibernate to work, although I'm not too happy with the resulting classes (mainly because I'm such a stickler for true Object Oriented Programming).