Vb.net 在启用Silverlight的WCF中执行全文搜索时处理秩(SQL Server中的附加列)
以下是代码,仅适用于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_
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