2010-10-10 6 views
0

j'ai une requête qui va disparaître un et trouver des donnéesComment puis-je lier une entité source de données pour les résultats d'une requête

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)) 

ce que je veux maintenant faire est d'utiliser les résultats de cette requête à Databind à un EntityDataSource Comment est-ce que je peux faire ceci?

Répondre

1

Vous pouvez essayer d'utiliser l'événement Sélection EntityDataSource comme dans l'exemple suivant:


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

Vous devez définir EntitySetName à rien parce qu'il renvoie une erreur si vous avez EntityDataSource de configuration avant.

+0

Si vous utilisez SQL Statement, alors pourquoi utiliser EntityDataSource? – Cheung

+0

@SilverNight, ce n'est pas SQL, il est Entity SQL http://msdn.microsoft.com/en-us/library/bb387145.aspx. EntityDataSource accepte uniquement les requêtes Entity SQL en tant que source de données. – Devart

+0

Merci pour corriger mon faux. Mais un avantage de l'utilisation de L2S ou EF est le type fort de classes de données générées à partir de SQL Server. Lorsque le schéma de la table de base de données est modifié, visual studio peut faire un avertissement de complication, et il est facile de tracer ce que je devrais corriger. Mais en utilisant Entity SQL, ce n'est pas le cas. Cependant, c'est vraiment la seule façon de rejoindre la table dans la dernière version EF en ce moment. – Cheung

Questions connexes