Asp.net MVC3:How to put username text from database
===

I'm loading the name of id of the user any view with:

    var oUser = db.User.FirstOrDefault(x => x.ID == User.Identity.Name.Remove(0, 6));
        if (oUser == null || (oUser.firstname == null|| oUser.lastname == null))
            ViewBag.User = User.Identity.Name.Remove(0, 6);
        else
            ViewBag.User = oUser.firstname + " " + oUser.lastname;

But i want to have the user name string in the _layout every time instead of being loading it every time.
Loading it to a viewbag could be a posibility, but i don't know where to put the code to pass the fields to the layout.

by the way, this won't work and it's not what i'm looking for:
   

     @if(Request.IsAuthenticated) {
            <text>Welcome <b>@Context.User.Identity.Name</b>!
            [ @Html.ActionLink("Log Off", "LogOff", "Account") ]</text>
        }
        else {
            @:[ @Html.ActionLink("Log On", "LogOn", "Account") ]
        }


