You can get away from inheriting from TableEntity, but to do so you end up writing some mapping code. In your code that actually will interact with Table Storage you can do some mapping from more raw table data to your object using the DynamicTableEntity to control serialization completely.

If you look at the second article it shows what the code looks like for a specific POCO object being saved and updated in Azure Table Storage. The third article expands upon the work of the first to include ETag Support.

Email codedump link for Using POCOs when persisting to Azure Table Storage