none
查詢不出來(LINQ to Entity )?? RRS feed

  • 問題

  • 請問學長:

    環境(Silverlight 3 + VS2008 pro)

    我在做Silverlight連資料庫的程式,
    我的方案中有兩個專案(Web應用程式 及 Silverlight專案)
    我在Web專案中做了.edmx ,  .sve  
    在SilverLight專案中,加入了服務參考
    在執行Silverlight時, 想要把designerTable內的designerId=00的資料找出來.
    但是出現錯誤  
    可否請學長指點一下, 可能是那出了問題??



     Dim context = New in2urbanEntities(New Uri("http://...../in2urbanSvc.svc", UriKind.Absolute))

            ' Define a LINQ query that returns all customers.
            Dim allDesigners = From designer In context.designerTable Where designer.designerId = "00"

            ' Enumerate over the query obtained from the context.
            For Each designer In allDesigners    --->error: Specified method is not supported
                messageTextBlock.Text &= designer.designerName
            Next

    謝謝學長


    努力吸收新知的海綿~
    2009年11月23日 下午 12:51

解答

  • 可參考這個:
    http://www.dotblogs.com.tw/regionbbs/archive/2008/10/09/5634.aspx

    我剛好那時就是用 ADO.NET Data Service 寫 sample code...
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    如果只會用 "看" 的學程式,那不如早點改行,以免誤己一生...
    若不想快點得到解答,可以儘量把問題寫模糊一點,愈模糊愈不會得到解答。
    除非不能打中文,否則請尊重當地語系的網友,使用中文發問或回答,這是一種基本禮貌。
    • 已標示為解答 Lolota Lee 2009年11月27日 上午 06:40
    2009年11月24日 上午 02:09
    版主

所有回覆

  • 我怎麼沒看到 Select 哩...
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    如果只會用 "看" 的學程式,那不如早點改行,以免誤己一生...
    若不想快點得到解答,可以儘量把問題寫模糊一點,愈模糊愈不會得到解答。
    除非不能打中文,否則請尊重當地語系的網友,使用中文發問或回答,這是一種基本禮貌。
    2009年11月23日 下午 02:14
    版主
  • 謝謝小朱大..

    ??Select??

    Sorry~~昨天第一天學Linq~~小朱大的意思是這樣嗎???

    Dim context = New in2urbanEntities(New Uri("http://....../in2urbanSvc.svc", UriKind.Absolute))
    Dim allDesigners = From designer In context.designerTable Where designer.designerId = "00" Select designer

            ' Enumerate over the query obtained from the context.
            For Each designer In allDesigners
                messageTextBlock.Text &= designer.designerName
            Next

    這樣還是有一樣的錯誤耶...請學長再幫忙一下
    非常感恩..


    努力吸收新知的海綿~
    2009年11月23日 下午 10:25
  • 你的Silverlight是用甚麼方式存取資料庫
    WCF?
    RIA Service?
    ADO.Net Data Service?(已更名為WCF Data Service)

    1.使用Silverlight存取後端資料你必須先決定使用哪種技術
    2.所有Silverlight通訊都屬於非同步同訊,所以無法像一般應用程式很單純的select就取得資料.

    如果對於WCF不熟,目前Microsoft最簡單的解決方案為RIA Service,建議你先看底下文章,RIA Service目前尚在Beta預計明年Release.


    http://www.silverlight.net/getstarted/riaservices/
    2009年11月24日 上午 12:18
  • 謝謝programlin大大

    我是用ADO.Net Data Service做的...
    要用非同步的方法...
    我照著MSDN的範例,寫了下面的...大大指的非同步是指這樣嗎??
    執行時還是有錯...

        Dim svcContext
        Dim designerBindingCollection = New ObservableCollection(Of designerTable)()

        Public Sub New()
            InitializeComponent()
        End Sub
        Private currentResult As IAsyncResult

        Private Sub getData_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
            svcContext = New in2urbanEntities(New Uri("http://...../in2urbanSvc.svc", UriKind.Absolute))
            designerBindingCollection.Clear()

            ' Define the delegate to callback into the process
            Dim callback As AsyncCallback = AddressOf OnDesignerQueryComplete

            Dim filterExpression = "designerID eq '00'"
            Dim query As DataServiceQuery(Of designerTable) = svcContext.designerTable().AddQueryOption("$filter", filterExpression)
            Try
                query.BeginExecute(callback, query)
            Catch ex As Exception
                messageTextBlock.Text = ex.Message
            End Try
        End Sub

        Private Sub OnDesignerQueryComplete(ByVal result As IAsyncResult)
            currentResult = result
            Dispatcher.BeginInvoke(AddressOf QueryCompletedByDispatcher)
        End Sub

        '要執行的動作
        Private Sub QueryCompletedByDispatcher()
            Try

                Dim query = CType(currentResult.AsyncState, DataServiceQuery(Of designerTable))
                Dim returnedDesigner = query.EndExecute(currentResult)  -->>error: An error occurred while saving changes. See the inner expection for details.

                If returnedDesigner IsNot Nothing Then


                    designerBindingCollection.Add(returnedDesigner)


                    Me.designerGrid.DataContext = designerBindingCollection
                    Me.designerGrid.UpdateLayout()
                End If
            Catch ex As DataServiceQueryException
                Me.messageTextBlock.Text = String.Format("Error: {0} - {1}", ex.Response.StatusCode.ToString(), ex.Response.Error.Message)
            End Try
        End Sub


    RIA Service 來去研究一下, 謝謝學長指點...


    努力吸收新知的海綿~
    2009年11月24日 上午 01:46
  • 可參考這個:
    http://www.dotblogs.com.tw/regionbbs/archive/2008/10/09/5634.aspx

    我剛好那時就是用 ADO.NET Data Service 寫 sample code...
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    如果只會用 "看" 的學程式,那不如早點改行,以免誤己一生...
    若不想快點得到解答,可以儘量把問題寫模糊一點,愈模糊愈不會得到解答。
    除非不能打中文,否則請尊重當地語系的網友,使用中文發問或回答,這是一種基本禮貌。
    • 已標示為解答 Lolota Lee 2009年11月27日 上午 06:40
    2009年11月24日 上午 02:09
    版主
  • 謝謝小朱大...這程式看起來親切多了..只是有幾句不知要怎麼翻成VB...請大大可否再幫忙一下

    這兩句怎麼翻
    AsyncCallback ac = asyncResult =>
    {
        var queryItems = (query as DataServiceQuery ).EndExecute(asyncResult);

    };

    下面是我翻出來的..........有點慘
    Dim dbcontext As in2urbanEntities = New in2urbanEntities(New Uri("http://...../in2urbanSvc.svc", UriKind.Absolute))

            Dim query = From c In dbcontext.designerTable Select c
            Dim aa As DataServiceQuery(Of designerTable)

            Dim ac As AsyncCallback = asyncresult

            Dim queryItems = (aa).EndExecute(asyncResult)

            For Each queryitem In queryitems
                Dim item As TextBox = New TextBox()
                item.Tag = queryitem.designerId
                item.Text = queryitem.Name
                ParentCanvas.Children.Add(item)
            Next
            messageTextBlock.Text = ""

            messageTextBlock.Text = "Data Loading...."
            aa.BeginExecute(ac, aa)

    請學長再幫忙推一把,謝謝


    努力吸收新知的海綿~
    2009年11月24日 上午 03:25
  • Sorry~~

    原來程式沒有問題~~
    是傳到Hosting上的svc檔不能用的問題....

    已經到asp.net另外發問了..

    謝謝大大
    害大大為我忙了.....真是不好意思
    努力吸收新知的海綿~
    2009年11月27日 下午 01:43