使用WCF将SQL Azure连接到Windows Phone 7

我是编程windows phone 7的新手,但真的很累,因为我花了3天时间处理一个问题。 我搜索所有的互联网,并得到一些很好的解释,但没有运气 - 它不适用于我的程序。

我在SQL Azure中创建了一个我称之为dbo.Messenger的表:

  • id(PK,非空)
  • 类别(nvarchar(30),null)
  • 消息(nvarchar(max),null)
  • 描述(nvarchar(200),null)
  • 然后我为它做WCF wchich应该给我一个清单:

          [OperationContract]
            List<NoteDto> GetNotes();
    
        public List<NoteDto> GetNotes()
        {
            using (var context = new WP7mgrEntities())
            {
                var notes = (from eachNote in context.Messenger
                             orderby eachNote.id ascending
                             select new NoteDto
               {
                   id = eachNote.id,
                   category= eachNote.category,
                   description= eachNote.description,
                   message= eachNote.message,
               }
                    ).ToList();
                return notes;
            }
        }
    

    每个DataMember都有这样的附加类NoteDto:

      [DataMember] 
        public int id {get; set; }
    

    所以在此之后,我让wp7应用程序获得listbox,这也应该填充afert我点击button2

            <ListBox Height="431" HorizontalAlignment="Left" Margin="12,199,0,0" Name="listBox1" VerticalAlignment="Top" Width="438"
                     ItemsSource="{Binding Notes}">
             <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <TextBlock Text="{Binding category}"/>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>         
            </ListBox> 
    

    这个背后的代码:

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            Service1Client client = new Service1Client();
            client.GetNotesCompleted += new EventHandler<GetNotesCompletedEventArgs>(client_GetNotesCompleted);
            this.Notes = new ObservableCollection<NoteDto>();
    
        }
        private ObservableCollection<NoteDto> _notes;
        public ObservableCollection<NoteDto> Notes
        {
            get { return _notes; }
            set { _notes = value;
            this.RaisePropertyChanged("Notes");
            } 
        }
    

    公共事件PropertyChangedEventHandler PropertyChanged; 私人无效RaisePropertyChanged(字符串propertyName){PropertyChangedEventHandler propertyChanged = this.PropertyChanged; 如果((propertyChanged!= null)){propertyChanged(this,new PropertyChangedEventArgs(propertyName)); }}

        void client_GetNotesCompleted(object sender, GetNotesCompletedEventArgs e)
        {this.Notes = e.Result; }
    

    当我点击按钮2时,我的列表框不是由数据库中的记录填充。
    任何想法 ? Plz的帮助?


    你使用什么样的绑定? 回想一下,只有wshttpbinding不适用于WP7。 另一方面,为什么不将这种数据库与WCF数据服务公开为OData。

    一探究竟。

    希望它有帮助,

    链接地址: http://www.djcxy.com/p/46573.html

    上一篇: Connecting SQL Azure to Windows Phone 7 using WCF

    下一篇: System.Threading.Timer interval in Windows Service