To find out that the destination is in a given larger region, you need not just to have the coordinates of the point in a larger area, but the coordinates that display its entire border.
If you have this data, this becomes a Point in Polygon problem. I found that ray tracing is pretty easy to implement in both SQL and C #, so it's good to have the function you create Linq, although I only did Linq2SQL, not Linq2Entities.
If you have only the coordinates of the center points, you can find the nearest such point using STDistance . This, however, can easily misidentify the location near the boundary of the larger state as being in the smaller state, since it is close to the center of the smaller state than the larger one.
If you are done with it, but you are not using SQL 2008 (so it is not STDistance), you can get a rough approximation by ordering at ((lat1 - lat2) * (lat1 - lat2)) + ((lng1 - lng2) * (lng1 - lng2)) . This gives a relative distance, as if the world were indeed a rectangle, as the Mercator projection suggests. Inaccuracy becomes worse the farther from the equator, so this may be almost acceptable for the US states, but not with the Canadian provinces.
source share