What is wrong with this?
interface IRepository where T : IBusinessEntity
{
IQueryable GetAll();
void Save(T t);
void Delete
The following two methods are wrong:
void Save(T t);
void Delete(T t);
You can't have T as method argument. Only as return type if you want it to be covariant (out T) in your generic definition.
Or if you want contravariance then you could use the generic parameter only as method argument and not return type:
interface IRepository where T : IBusinessEntity
{
void Save(T t);
void Delete(T t);
}