Yes you are completely right!
Your code smell =) This is a bad style to perform some BL inside your Controller.
As concerns advises.
I can recommend you to separate your idea to differ tires.
So as a result it might be 3 tiers (BL, DAL, and your WEB).
As a core of a DAL , it would be convenient to use EF and Repository pattern with conjunction of UnityOfWork.
So as a result it could be something like that:
[HttpPost]
public ActionResult Create(FormCollection collection, Auction auction)
{
BL.DVTire bl=new BL.DVTire();
if(bl.Validate(auction))
{
using(var uow=Dal.UnityOfWork())
{
using(var auctionRepo=Dal.RepoFactory.Create<Auction>(uow))
{
auctionRepo.Insert(auction);
uow.Commit();
}
}
}
}
</auction>
Of course this is not a bible, and you might choose another variant =)
But consider this example like starting point =)