Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在启用Silverlight的WCF中执行全文搜索时处理秩(SQL Server中的附加列)_Vb.net_Entity Framework_Wcf_Silverlight_Full Text Search - Fatal编程技术网

Vb.net 在启用Silverlight的WCF中执行全文搜索时处理秩(SQL Server中的附加列)

Vb.net 在启用Silverlight的WCF中执行全文搜索时处理秩(SQL Server中的附加列),vb.net,entity-framework,wcf,silverlight,full-text-search,Vb.net,Entity Framework,Wcf,Silverlight,Full Text Search,以下是代码,仅适用于SQL Server中启用全文搜索的表。我想知道我的方法是否正确 Dim dbConn as ObjectContext = DirectCast(MyEntConn, IObjectContextAdapter).ObjectContext Dim CurPrimaryKey as string = dbConn.ExecuteStoreQuery(of String)(String.Concat("SELECT COLUMN_NAME FROM INFORMATION_

以下是代码,仅适用于SQL Server中启用全文搜索的表。我想知道我的方法是否正确

Dim dbConn as ObjectContext = DirectCast(MyEntConn, IObjectContextAdapter).ObjectContext

Dim CurPrimaryKey as string = dbConn.ExecuteStoreQuery(of String)(String.Concat("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE where table_name like 'MyTable'")).ToList()(0)

Dim FTSQry = "SELECT fts.RANK, * from MyTable as tbl inner join CONTAINSTABLE(MyTable, (*), 'ISABOUT(venkatesh WEIGHT(0.9), venketash WEIGHT(0.6))' AS fts ON tbl." & CurPrimaryKey & " = fts.[KEY] ORDER BY fts.RANK DESC, " & CurPrimaryKey

Dim FTSQryOutput = dbConn.ExecuteStoreQuery(Of MyTable)(FTSQry)).ToList
在SSMS中执行的调试期间执行的此查询提供了预期的输出以及秩列。伟大的但是在VS中执行不会给出输出,因为实体框架为MyTable生成的代码没有[RANK]列

因此,我在web项目Silverlight web项目中添加了一个类,如下所示

Partial Public Class MyTable
    Public Property RANK as Integer
End Class
现在,VisualStudio中的FTSQuery执行情况良好。但秩列输出始终为0,而SSMS为同一查询提供正确的秩值。若我将整数更改为双精度,则列输出为0.0。如果我更改为任何其他类型,则该列没有任何值


请帮忙。

好的,没人试过。好的目前,我找到了一个解决方法。使用本机DB调用来获取秩值,而不是dbConn.ExecuteStoreQuery。Dim spCon as DBConnection=dbConn.Database.Connection Dim CurPrvFactory as DBProviderFactory=DBProviderFactory.GetFactoryspCon Dim spAdp as DbDataAdapter spAdp=CurPrvFactory.CreateAdapter Dim spCmd as DBCommand=CurPrvFactory.CreateCOMAND spCmt.Connection=spCon spCmd.CommandType=CommandType.Text spCmd.CommandText='Qry'DimOutputDS作为新数据集spAdp.SelectCommand=spCmd spAdp.FillOutputDs Dim OutputLs作为列表MyTable=OutputDS.Tables0.TableToList