Linq isn’t really as good as a decent active record implementation if you want a strongly typed business layer. I use Diamond Binding (http://dunnchurchill.com) – and the query api is really good – you dont get these silly anonymous types making your code messy.