I want to draw all geometry from database that instersects with specified rectangle with this code.
But, is selects 1) Parcels that intersect in one query 2) Geometry of each parcel in other queries
1) SELECT a.[Id] AS COL1, a.[CertificationDocId] AS COL2, a.[CertificationDocId] AS COL3, a.[Number] AS COL4 FROM [Parcels] a WHERE a.[Number] LIKE @p0 + '%' ESCAPE '\' AND a.[Geometry].STIntersects(@p1) = 1 ORDER BY COL1
2) SELECT [Geometry] AS COL1 FROM [Parcels] WHERE [Id] = @p0
Can i use a single query somehow?
using (var quartersDb = new ProjectsByRegionsContext())
{
var parcels = quartersDb.Parcels
.Where(p => p.Number.StartsWith(regionCode) && p.Geometry.STIsValid().ToString() == "1" && p.Geometry.STIntersects(sqlGeometry).Equals(1))
.ToList();
foreach (var parcel in parcels)
{
if (usedCadNumbers.Contains(parcel.Number))
continue;
usedCadNumbers.Add(parcel.Number);
var drawedGeometry = CommandHelper.DrawGeometry(parcel.Geometry.ToNtsGeometry());
BlockHelper.CreateBlock(parcel.Number, drawedGeometry, parcel.GetAttributes());
}
}