After stumbling over this a couple of times in the past week I decided to blog-it so I won't forget again.
By convention, SubSonic requires that any tables to be auto-generated into the DAL have a primary key.
#1 sign you're missing a primary key
You have your super-sweet database humming along in it's fully normalized form. You try to generate your DAL with SubSonic but one of your tables isn't being code-gened.
For example, if you have a Customer table then SubSonic should generate the following three classes:
Customer CustomerCollection CustomerController
Note: Customer and CustomerCollection will be in the Customer.cs file, and the third class will be in CustomerController.cs.