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

本文关键字:Windows Phone 连接 Azure WCF SQL 使用 | 更新日期: 2023-09-27 18:30:24

我是编程Windows Phone 7的新手,但真的很累,因为我在一个问题上花了3天时间。我搜索所有互联网并得到一些很好的解释,但没有运气 - 它对我的程序不起作用。

我在SQL Azure中创建了一个我称之为dbo的表。带结构的信使:

  • id (PK,非空)
  • 类别 (nvarchar(30), null)
  • 消息 (nvarchar(max), null)
  • 描述 (nvarchar(200), null)

然后我为它做WCFwchich应该给我带来一个清单:

      [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;
        }
    }

的库尔斯在额外的类 NoteDto 上为每个数据成员获得这样的信息:

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

所以在此之后,我制作了 wp7 应用程序,这些应用程序会得到列表框,这也应该填充我单击按钮2

        <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");
        } 
    }
公共事件属性已更改

事件处理程序属性已更改; private void RaisePropertyChanged(string propertyName) { 属性已更改事件处理程序属性已更改 = this。属性已更改; if ((属性已更改!= 空)) { 属性已更改(this, new PropertyChangedEventArgs(propertyName)); } }

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

当我单击按钮 2 时,我的列表框没有被数据库中的记录填充。
知道吗?请帮忙 ?

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

您使用哪种绑定? 回想一下,只有 WShttpbinding 不适用于 WP7。另一方面,为什么不使用 WCF 数据服务公开此类数据库作为 OData。

看看吧。

希望对您有所帮助,