I tried the following code that behaves differently from what I expected. The DbGeometry.FromText is supposed to create an object from WKT. However, the contains function only seems to work on Polygon WKT and not for circles or linestrings (I've drawn a diamond in the example). In these examples, all the geometries "contain" 0,0 but only polygon actually results the value I expected. Any idea of what's going on? Am I missing something in code or am I missing some theory about how DbGeometry works?
DbGeometry point = DbGeometry.FromText("POINT (0 0)");
DbGeometry circle = DbGeometry.FromText("CIRCULARSTRING(0 -1, 1 0, 0 1, -1 0, 0 -1)");
Console.WriteLine(circle.Contains(point)); // returns false
var diamond = DbGeometry.FromText("LINESTRING(0 -1, 1 0, 0 1, -1 0, 0 -1)");
Console.WriteLine(diamond.Contains(point)); //returns false
var polygon = DbGeometry.FromText("POLYGON((-1 -1, -1 1, 1 1, 1 -1, -1 -1))");
Console.WriteLine(polygon.Contains(point)); //returns true