Properties for Earth class
It sounds like Earth cannot exist without an ID and the UpdateUniverse boolean flag. As such, you need a constructor that enforces this:

public Earth(int id, bool updateUniverse)
{
    // the rest of the code that went in Earth(Earth m)
}


If you still need a parameterless constructor because WCF needs it, that's fine. You can extract that constructor into its own method:

public Earth(int id, bool updateUniverse)
{
    SetId(id, updateUniverse);
}

public void SetId(int id, bool updateUniverse)
{
    // the rest of the code that went in Earth(Earth m)
}


I'm also questioning why this class needs a reference to the data access layer at all. It actually looks like you need planetX for an Earth to even exist.

What is planetX, another Earth? I'm getting lost here. Which Earth are we talking about, and how many are there? The real problem is that this class is doing too much. It is doing data access, which needs to happen in the code using the Earth objects, not inside the Earth class.

Judging by your first code block, this seems more appropriate:

Earth earth = new EarthDataAccess().GetById(11);

// now just use a fully populated Earth object


Pulling an Earth object from the database should not involve more lines of code than that.