C# 使用命名sql查询进行全文索引搜索时NHibernate中出现异常

C# 使用命名sql查询进行全文索引搜索时NHibernate中出现异常,c#,nhibernate,sql,named,C#,Nhibernate,Sql,Named,我正在使用一个查看vw_SearchSite实现全文搜索,该站点具有所有可搜索字段,并且返回的站点与搜索结果具有相同的站点ID 查询: public Site[] GetSitesforSearch(string search) { using (var session = GetSession()) { var q1 = session.GetNamedQuery("SearchSite").SetString("patter

我正在使用一个查看vw_SearchSite实现全文搜索,该站点具有所有可搜索字段,并且返回的站点与搜索结果具有相同的站点ID

查询:

 public Site[] GetSitesforSearch(string search)
    {
        using (var session = GetSession())
        {

            var q1 = session.GetNamedQuery("SearchSite").SetString("pattern", search);
            var q2 = q1.List<Site>().ToArray();
            return q2;
        }
    }
in expected: {site} [SELECT DISTINCT {site.*}
FROM v_Site {site}
WHERE {site}.Id IN (
  SELECT Id
  FROM vw_SearchSite
  WHERE CONTAINS(vw_SearchSite.*,:pattern)
)]
.....

我拥有本地主机数据库的完全权限。我用上面的代码尝试了所有可能的排列和组合,但没有找到解决办法。当我在SQLServerManagementStudio中执行查询时,它工作得非常好

这是我的单元测试:

 public Site[] GetSitesforSearch(string search)
    {
        using (var session = GetSession())
        {

            var q1 = session.GetNamedQuery("SearchSite").SetString("pattern", search);
            var q2 = q1.List<Site>().ToArray();
            return q2;
        }
    }
in expected: {site} [SELECT DISTINCT {site.*}
FROM v_Site {site}
WHERE {site}.Id IN (
  SELECT Id
  FROM vw_SearchSite
  WHERE CONTAINS(vw_SearchSite.*,:pattern)
)]
public void Getsitesforsearch\u返回\u所有匹配的\u站点\u测试() { //安排 const string search=“abc”; var country=_entityBuilder.CreateCountry(); country.Name=“墙国”; var country1=_entityBuilder.CreateCountry(); country.Name=“蹩脚的国家”; var state1=_entityBuilder.CreateState(); 国家1.国家=国家; var state2=_entityBuilder.CreateState(); 国家2.国家=国家1; state1.Name=“墙状态”; state1.缩写=“WS”; state2.Name=“垃圾”; state2.缩写词=“CR”

这是错误:

 public Site[] GetSitesforSearch(string search)
    {
        using (var session = GetSession())
        {

            var q1 = session.GetNamedQuery("SearchSite").SetString("pattern", search);
            var q2 = q1.List<Site>().ToArray();
            return q2;
        }
    }
in expected: {site} [SELECT DISTINCT {site.*}
FROM v_Site {site}
WHERE {site}.Id IN (
  SELECT Id
  FROM vw_SearchSite
  WHERE CONTAINS(vw_SearchSite.*,:pattern)
)]
SiteRepositoryTester.Getsitesforsearch\u返回所有匹配的站点\u测试:失败

NHibernate:选择deviceinst0.Id作为Id5,deviceinst0.Name作为Name5,deviceinst0.Latitude作为Latitude5,deviceinst0.Latitude作为Longitude5,deviceinst0.InstallationDate作为Installa5,deviceinst0.RemovalDate作为RemovalD6,deviceinst0.DeviceId作为DeviceInst5,deviceinst0.PrimaryGroupId作为PrimaryG8,deviceinst0.SecondarypId作为tg.v\u设备安装装置0的第二个AR9\u 5_ NHibernate:从tg.vw\u基站0中选择basestatio0\u0.BaseStationId作为BaseStat1\u 4\u0,basestatio0\u0.BaseId作为BaseId4\u0,basestatio0\u0.SiteId作为SiteId4\u0_ NHibernate:选择threshold0.Id作为Id8,threshold0.ReadingTypeId作为Reading2.u 8,threshold0.UpperBound作为UpperBound8,threshold0.LowerBound作为LowerBound8,threshold0.DeviceInstallId作为设备从tg.v\U threshold0安装_ NHibernate:从tg.vw\u state0中选择state0\uID为Id9\u0.Name为Name9\u0,state0\u0.缩写为Abbrevia3\u9\u0,state0\u0.CountryId为CountryId9\u0_ NHibernate:从tg.vw\u设备组设备组中选择devicegrou0\uID为Id0\uU0,devicegrou0\uU0.Name为Name0\uU0,devicegrou0\uU0.OldId为OldId0\uU0,devicegrou0\uU0.DeviceGroupTypeId为DeviceGr4\u0\uU0,devicegrou0\uU0.SiteId为SiteId0\u0_ NHibernate:从tg.v_User user0中选择user0_u0.Id作为Id2_u0,user0_0.Username作为Username2_0,user0_0.Password作为Password2_0,user0_0.FirstName作为FirstName2_0,user0_0.LastName作为LastName2_0_ NHibernate:选择site0\u0.Id作为Id10\u0,site0\u0.Name作为Name10\u0,site0\u0.Address作为Address10\u0,site0\u0.City作为City10\u0,site0\u0.PostalCode作为PostalCode 10\u0,site0\u0.Latitude作为纬度10\u0,site0\u0.经度10\u0,site0\u0.PrimaryGroupName作为PrimaryG8\u10\u0,site0\u0.SecondaryGroupName作为Secondar9\u10\u0,site0\uu0.StateId作为StateId10\uu站点站点0_ NHibernate:从tg.v_设备设备0中选择设备0_.Id为Id7_,设备0_.Id为设备2_7_,设备0_.Name为Name7_,设备0_.NodeId为NodeId7_,设备0_.SiteId为SiteId7__ NHibernate:选择connection0.ConnectionId作为Connection1.6,connection0.RemoteIP作为RemoteIP6,connection0.ConnectedOn作为Connect3.6,connection0.DisconnectedOn作为Disconnect4.6,connection0.BaseStationId作为BaseStat5_ NHibernate:从tg.vw\u Country Country 0中选择country0\u0.Id作为Id1\u0,country0\u0.Name作为Name1\u0_ NHibernate:插入tg.vw_国家(名称)值(@p0);选择范围_标识();@p0='United States' NHibernate:在tg.vw_State(名称、缩写、CountryId)中插入值(@p0、@p1、@p2);选择SCOPE_IDENTITY();@p0='Minnesota',@p1='MN',@p2='347' NHibernate: NHibernate:插入tg.vw_国家(名称)值(@p0);选择范围_标识();@p0='United States' NHibernate:在tg.vw_State(名称、缩写、CountryId)中插入值(@p0、@p1、@p2);选择SCOPE_IDENTITY();@p0='Minnesota',@p1='MN',@p2='348' NHibernate: NHibernate:插入tg.vw_国家(名称)值(@p0);选择范围_标识();@p0='United States' NHibernate:插入tg.vw_Country(Name)值(@p0);选择SCOPE_IDENTITY();@p0='crapy Country' NHibernate: NHibernate:将值(@p0、@p1、@p2、@p3、@p4、@p5、@p6、@p7、@p8)插入tg.v_站点(名称、地址、城市、邮政编码、纬度、经度、主要群组名称、次要群组名称、状态ID);选择范围_标识();@p0='abc',@p1='12343测试大道',@p2='wallsite',@p3='33333',@p4='55',@p5='-92.2',@p6='Pri',@p7='Sec',@p8='181' NHibernate:将值(@p0、@p1、@p2、@p3、@p4、@p5、@p6、@p7、@p8)插入tg.v_站点(名称、地址、城市、邮政编码、纬度、经度、主要群组名称、次要群组名称、状态ID);选择范围_标识();@p0='site wall',@p1='12343 Testing Blvd',@p2='wallsite',@p3='44444',@p4='55',@p5='-92.2',@p6='Pri',@p7='Sec',@p8='181' NHibernate:将值(@p0、@p1、@p2、@p3、@p4、@p5、@p6、@p7、@p8)插入tg.v_站点(名称、地址、城市、邮政编码、纬度、经度、主要群组名称、次要群组名称、状态ID);选择范围_标识();@p0='site',@p1='12343测试大道',@p2='wallsite',@p3='55555',@p4='55',@p5='-92.2',@p6='Pri',@p7='Sec',@p8='180' NHibernate:将值(@p0、@p1、@p2、@p3、@p4、@p5、@p6、@p7、@p8)插入tg.v_站点(名称、地址、城市、邮政编码、纬度、经度、主要群组名称、次要群组名称、状态ID);选择范围_标识();@p0='site wall',@p1='12343 Testing Blvd',@p2='walstreet',@p3='66666',@p4='55',@p5='-92.2',@p6='Pri',@p7='Sec',@p8='181'