I think that first we have to fix issues related to Linq-Provider and custom-types then we have to add some linq-extensions inside NHibernate-Spatial (as it has HQL extensions).
On Thu, Aug 19, 2010 at 11:02 AM, David Pfeffer <[email protected]> wrote: > An example from NH Spatial -- > > I have a type... > > public class Breadcrumb > { > public virtual int Id { get; set; } > public virtual IGeometry Position { get; set; } > public virtual string Description { get; set; } > } > > ...and in my code I do the following... > > IGeometry center; > // code here to set the center to a useful point > var breadcrumbsWithinDistance = session.Query<Breadcrumb>().Where(x => > x.Position.Distance(center) < 500); > > Now, how would the LINQ engine know the mapping of *center*? Since it > isn't a property of a mapped class there's nothing already specified here > for what user type to use. > > I propose that line could be replaced as... > > var breadcrumbsWithinDistance = session.Query<Breadcrumb>().Where(x => > x.Position.Distance(center.AsUserType(new > NHibernate.Type.CustomType(typeof(NHibernate.Spatial.Type.MsSql2008GeographyType), > null) > )) < 500); > > (or whatever other user type is appropriate for that database engine) > > What do you think? > > > On Mon, Aug 16, 2010 at 5:16 PM, Fabio Maulo <[email protected]> wrote: > >> >> El 16/08/2010, a las 12:14, David Pfeffer <[email protected]> escribió: >> >> I would attempt to write a fix, but this isn't just a bug. There's a >> design issue to be resolved here as to how to go about implementing this. >> >> >> I'm not so sure about " a design issue"... >> >> >> One idea I have is to create an extension method, WithUserType(this object >> obj, IType type) that will be used to inform the LINQ provider as to the >> type (UserType, etc.). >> >> >> Try to write an example where the Type can't be inferred. >> Thanks. >> >> >> If this sounds like a good idea, would anyone be able to provide a few >> pointers as to where to look to hook this in? I will take a look and see if >> I can patch. >> >> Thanks. >> >> On Mon, Aug 16, 2010 at 10:53 AM, Fabio Maulo < <[email protected]> >> [email protected]> wrote: >> >>> Known issue >>> <http://216.121.112.228/browse/NH/component/10120> >>> http://216.121.112.228/browse/NH/component/10120 >>> >>> >>> On Fri, Aug 13, 2010 at 2:54 PM, David Pfeffer < <[email protected]> >>> [email protected]> wrote: >>> >>>> Hello all, >>>> >>>> So I'm having a bit of difficulty trying to build a LINQ to NH Spatial >>>> provider. Specifically, I have not found a way to specify the user type for >>>> IGeometry types. So, even though I have the backend LINQ parser code >>>> plugged >>>> in, queries fail due to "No persister for: GeoAPI.Geometries.IGeometry." >>>> >>>> In Criteria and HQL specifying the user type is easy. How do I specify >>>> the user type for a LINQ query so that my backend code is invoked? >>>> >>>> Thanks! >>>> >>> >>> >>> >>> -- >>> Fabio Maulo >>> >>> >> > -- Fabio Maulo
