DbGeometry makevalid?
Going off of what Pawel commented, All I do is check to see if it is valid then make it valid if it isn't.
DbGeometry myGeometry = DbGeometry.FromText("POLYGON ((10 10, 15 15, 5 15, 10 15, 10 10))");
if(!myGeometry.IsValid)
{
myGeometry = SqlSpatialFunctions.MakeValid(myGeometry);
}