2010-10-10 76 views
0

我有一個查詢,會自行消失的,找到數據我如何實體數據源綁定到查詢結果

Dim HSNs As String = String.Join(",", ListOfHSNs.Cast(Of String)().ToArray()) 



     Dim query As String = "SELECT VALUE O FROM v_BillData AS O WHERE O.HSNumber IN {'" & HSNs & "'}" 



     Dim hs As New ObjectQuery(Of v_BillData)(query, CType(Session("ObjectCon"), ObjectContext)) 

我現在想做的就是使用這種查詢的結果綁定到EntityDataSource 我該怎麼做?

回答

1

你可以試試下面的示例使用選擇EntityDataSource事件,如:


Protected Sub EntityDataSource1_Selecting(ByVal sender As Object, ByVal e As EntityDataSourceSelectingEventArgs) 
    Dim HSNs As String = String.Join(",", ListOfHSNs.Cast(Of String)().ToArray()) 
    Dim query As String = "SELECT VALUE O FROM v_BillData AS O WHERE O.HSNumber IN {'" & HSNs & "'}" 
    Dim source As EntityDataSource = Nothing 
    source = TryCast(Me.Page.FindControl("EntityDataSource1"),EntityDataSource) 
    If (Not source Is Nothing) Then 
    source.EntitySetName = Nothing 
    source.CommandText = query 
    End If 
End Sub

您應該設置EntitySetName爲Nothing,因爲如果你之前已經安裝EntityDataSource它會拋出一個錯誤。

+0

如果使用SQL語句,那麼爲什麼必須使用EntityDataSource? – Cheung 2011-01-19 06:47:14

+0

@SilverNight,這不是SQL,它是實體SQL http://msdn.microsoft.com/en-us/library/bb387145.aspx。 EntityDataSource只接受實體SQL查詢作爲數據源。 – Devart 2011-01-28 06:23:59

+0

謝謝你糾正我的錯誤。但使用L2S或EF的一個優點是從SQL Server生成的強類型的Data類。當數據庫表格模式發生變化時,visual studio可以發出compliation警告,並且很容易跟蹤我應該糾正的內容。但是使用Entity SQL它不會。然而,它現在真的是最新版本EF連接表的唯一方式。 – Cheung 2011-01-28 06:41:17

相關問題