• The trouble is though that the CRUD procedures auto-generated are effectively line-item procedures? i.e. the processing is done RBAR.

    Creating procedures to do this, means effectively grinding through programming data into the database almost column-by-column, line by line.

    I found the switch to TVPs very effective in stripping out so much procedural rubbish that imperative programming favours, and this encourages a much more intuitive style of programming in both C# components and in SQL itself.

    Sure you need to have a SQL developer on hand to do this. But if you can have fewer C# coders as a result, what is the loss? 🙂