Остальные ответы верны: как только вы выходите из блока использования, ваш объект удаляется. Блок using отлично подходит для обеспечения своевременного удаления объекта, поэтому, если вы не хотите полагаться на то, что потребители вашей функции не забудут утилизировать объект позже, вы можете попробовать что-то вроде этого:
public void UsingDataContext (Action<DataContext> action)
{
using (DataContext ctx = new DataContext())
{
action(ctx)
}
}
Таким образом, вы можете сказать что-то вроде:
var user = GetNewUserInfo();
UsingDataContext(c => c.UserSet.Add(user));