I’ve been using Common Table Expressions a lot lately. Particularly when populating SQL Databases with test data. I recommend checking them out if you write slightly more than a modicum of SQL.
Just briefly – if you’re not familiar with CTE’s or their uses – imagine needing to populate a table like this:
Months(Id int, MonthNo int, Year int) – with values between say Jan 2000 and Jan 2010. You might do something like this…
WITH months(id, mnth, yr) AS (SELECT 1, 1, 2000 UNION ALL SELECT id + 1, ( mnth % 12 ) + 1, yr + ( mnth / 12 ) FROM months WHERE yr < 2010) SELECT * FROM months OPTION(maxrecursion 500)
Now onto the Recursive Linq bit (not to be confused with a Recursive Link.)
Just recently, I was building a
Schedule class that required functionality similar to the above SQL. That is, I needed to split some span of time up into N
DateTimes based on some function.