我在SQL Server 2008 R2数据库中有一个带有tinyint列的表,该数据库映射到我的POCO中的byte属性。
问题是每当我使用NHibernate在tinyint列上使用where子句运行查询时,会产生以下sql ...
and cast(table0_.TinyIntColumn as INT)=@p1
我只是想知道如何摆脱这种行为,因为虽然查询仍然可以解决它的烦人和不必要的问题,所以任何人都知道任何解决方案或者之前遇到过这个问题吗?
感谢。
答案 0 :(得分:1)
这似乎是LINQ提供程序中的一个错误。
以下查询:
session.CreateQuery("from Foo where TinyIntColumn = :b").SetParameter("b", 1)
session.QueryOver<Foo>().Where(x => x.TinyIntColumn == 1)
session.Query<Foo>().Where(x => x.TinyIntColumn == 1)
...只有最后一个会导致您遇到的行为。
处打开一个问题