更新&使用Odata服务和linq插入数据库

时间:2013-07-24 07:26:45

标签: c# linq windows-phone-8 wcf-data-services odata

我正在构建一个使用远程数据库的windows-phone 8应用程序。为了访问这个数据库,我创建了一个Odata Dataservice(在IIS上运行)。

我已经准备好成功使用此数据服务从数据库中检索数据。但我想使用此服务更新数据并将数据插入数据库。我如何使用linq做到这一点?

注意:我已阅读this

但是我无法使用我已经拥有的链接:

        private void Mainpage_loaded(object sender, RoutedEventArgs e)
    { 

        var ctx = new MeasurmentEntities(new Uri("http://192.168.11.240:85/NFCDataService.svc/"));
        var coll = new DataServiceCollection<Device>(ctx);

        Lst.ItemsSource = coll;

        coll.LoadCompleted += new EventHandler<LoadCompletedEventArgs>(coll_LoadCompleted);

        var query = from g in ctx.Devices
                    where g.DeviceId > 2
                    orderby g.DeviceName
                    select g;


        coll.LoadAsync(query);

    }

    void coll_LoadCompleted(object sender, LoadCompletedEventArgs e)
    {

        if (e.Error != null)
        {
            MessageBox.Show(e.Error.ToString());
        }

    }

1 个答案:

答案 0 :(得分:1)

如下所示添加实体(即插入记录):

ctx.AddToDevices(new Device{...});
ctx.BeginSaveChanges(new AsynCallback(r=>{
     DataServiceResponse dsr = ctx.EndSaveChanges(r);
     if (dsr.Any(op => op.Error != null))
     {
       //Show error message
     }
     else
     {
       //Succeeded
     }
},null);