You should instantiate a LinqMetaData every time you need one, unless it's necessary for other reasons. It's very cheap to create and destroy them.
In the adapter scenario the adapter needs to dispose the connection object, and it does that, so no dispose call is needed. It by default closes a connection after an action, which gives the underlying connection object back to the pool. The adapter will dispose the active connection object when it closes it. For SelfServicing is not that different, a connection is open and closed for each call, but remember that the LinqMetaData is not responsible of disposing the connection. LinqMetaData is a class for the construction of Linq queries.
In SelfServicing some static properties (as currently open connection, settings, connection strings) are hold in static members of Dao classes, but this is managed by LLBLGen Runtime. You only need to worry about use your LinqMetaData when you need one. IMHO there is not need to declare it as static in your repository.