It might be nice if the user was allowed to inherit their model from an IModel interface that looked something like this:
interface IModel
{
int/Guid Id { get; set;}
}
This would allow the code not to have to use the Type.GetProperty() method and provide more IntelliSense.