Thanks a lot Alexander. I used .Equals, like the article said (even though it says the issue is resolved, it's not) and it worked fine.
Thanks again. On Wednesday, May 30, 2012 1:35:20 PM UTC-4, Alexander I. Zaytsev wrote: > > It is the same issue as in https://nhibernate.jira.com/browse/NH-3124 but > with short to int conversation. > > 2012/5/30 jlhunter > >> After doing a bit more testing, this happens with MSSQL2008 as well. >> Since the criteria part works fine, I will say this is an issue with the >> LINQ provider for NHibernate. >> >> With that said, are there any other LINQ providers I can use instead? I'd >> rather use LINQ so I don't have to type in the field name freeform. There's >> high chance of mistakes when multiple people begin working on a project. >> >> >> On Wednesday, May 30, 2012 7:24:12 AM UTC-4, jlhunter wrote: >>> >>> The exact same. It passes it as Int32. I can get it to pass Int16 by >>> making the type in the class int, but keeping the mapping type in the XML >>> as short, but then I get a "Specified cast is not valid." error. >>> >>> On Wednesday, May 30, 2012 1:24:12 AM UTC-4, Oskar Berggren wrote: >>>> >>>> What happens if you use ((short)500) in the expression? >>>> >>>> /Oskar >>>> >>>> >>>> 2012/5/30 jlhunter >>>> > I can't figure out how to get NHibernate to map to Int16. >>>> > >>>> > In the class, public virtual Int16 ClientId { get; set; } >>>> > In the XML, name="ClientId" column="clnt_id" type="short" >>>> > >>>> > It works when I use: >>>> > var member = session.CreateCriteria<Member>**() >>>> > .Add(Restrictions.Eq("**ClientId", 500)) >>>> > .Add(Restrictions.Eq("**MemberId", 45629)) >>>> > .List<Member>(); >>>> > >>>> > but not: >>>> > var member = session.Query<Member>().Where(**x => x.ClientId == 500 >>>> && >>>> > x.MemberId == 45629).ToList(); >>>> > >>>> > The latter passes in Int32 for ClientId, not Int16. This causes >>>> issues as >>>> > the column type is smallint (it takes about 40 seconds longer when >>>> passing >>>> > in Int32, don't have a full grasp of what's happening). >>>> > >>>> > I'm not sure how to map LINQ to use Int16. >>>> > >>>> > Thanks >>>> > >>>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "nhusers" group. >> To view this discussion on the web visit >> https://groups.google.com/d/msg/nhusers/-/mHBkkxmodG4J. >> >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/nhusers?hl=en. >> > > On Wednesday, May 30, 2012 1:35:20 PM UTC-4, Alexander I. Zaytsev wrote: > > It is the same issue as in https://nhibernate.jira.com/browse/NH-3124 but > with short to int conversation. > > 2012/5/30 jlhunter > >> After doing a bit more testing, this happens with MSSQL2008 as well. >> Since the criteria part works fine, I will say this is an issue with the >> LINQ provider for NHibernate. >> >> With that said, are there any other LINQ providers I can use instead? I'd >> rather use LINQ so I don't have to type in the field name freeform. There's >> high chance of mistakes when multiple people begin working on a project. >> >> >> On Wednesday, May 30, 2012 7:24:12 AM UTC-4, jlhunter wrote: >>> >>> The exact same. It passes it as Int32. I can get it to pass Int16 by >>> making the type in the class int, but keeping the mapping type in the XML >>> as short, but then I get a "Specified cast is not valid." error. >>> >>> On Wednesday, May 30, 2012 1:24:12 AM UTC-4, Oskar Berggren wrote: >>>> >>>> What happens if you use ((short)500) in the expression? >>>> >>>> /Oskar >>>> >>>> >>>> 2012/5/30 jlhunter >>>> > I can't figure out how to get NHibernate to map to Int16. >>>> > >>>> > In the class, public virtual Int16 ClientId { get; set; } >>>> > In the XML, name="ClientId" column="clnt_id" type="short" >>>> > >>>> > It works when I use: >>>> > var member = session.CreateCriteria<Member>**() >>>> > .Add(Restrictions.Eq("**ClientId", 500)) >>>> > .Add(Restrictions.Eq("**MemberId", 45629)) >>>> > .List<Member>(); >>>> > >>>> > but not: >>>> > var member = session.Query<Member>().Where(**x => x.ClientId == 500 >>>> && >>>> > x.MemberId == 45629).ToList(); >>>> > >>>> > The latter passes in Int32 for ClientId, not Int16. This causes >>>> issues as >>>> > the column type is smallint (it takes about 40 seconds longer when >>>> passing >>>> > in Int32, don't have a full grasp of what's happening). >>>> > >>>> > I'm not sure how to map LINQ to use Int16. >>>> > >>>> > Thanks >>>> > >>>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "nhusers" group. >> To view this discussion on the web visit >> https://groups.google.com/d/msg/nhusers/-/mHBkkxmodG4J. >> >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/nhusers?hl=en. >> > > -- You received this message because you are subscribed to the Google Groups "nhusers" group. To view this discussion on the web visit https://groups.google.com/d/msg/nhusers/-/7bRqlWw8FAQJ. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
