I have the following domain object:
public class Bank : IEntity
{
}
And the following IRepository:
public interface IRepository<TEntity> where TEntity : IEntity
{
}
Is the where TEntity : IEntity needed?  What does this mean, that TEntity is of type IEntity?  Is there any naming conventions when I use something like TEntity?  What does the T stand for?