I think it would be bad if _context ever returns null - it's a factory function, obviously if it fails it should throw, like a constructor would. Also we don't guard against _context being null anywhere except the Dispose() method currently. But the irony of that is even Dispose() doesn't set it to null.