我正在构建一个使用远程数据库的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());
}
}
答案 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);