Asp.net ObjectDataSource更新方法Parrameter中没有Id

Asp.net ObjectDataSource更新方法Parrameter中没有Id,asp.net,objectdatasource,Asp.net,Objectdatasource,我有一个.NET3.5应用程序,它有一个简单的表单视图和一个对象数据源 <asp:ObjectDataSource ID="odsDevice" runat="server" SelectMethod="GetDeviceByDeviceNumber" EnableViewState="True" UpdateMethod="updateDevice" DataObjectTypeName="GPSO.Repository.Device" TypeName="GPSOnline.

我有一个.NET3.5应用程序,它有一个简单的表单视图和一个对象数据源

<asp:ObjectDataSource ID="odsDevice" runat="server" SelectMethod="GetDeviceByDeviceNumber" EnableViewState="True"
     UpdateMethod="updateDevice" DataObjectTypeName="GPSO.Repository.Device" TypeName="GPSOnline.ATOMWebService">
<SelectParameters>
    <asp:SessionParameter DbType="Guid" Name="deviceid" SessionField="deviceid" />
</SelectParameters>
现在,业务对象包含了几个我对更新不感兴趣的字段,我只想更新设备号

但是,我的问题是,我作为参数获取到“public void updateDevice(device device)”方法中的设备对象没有被更新对象的ID。这使得不可能知道存储库中要更新的记录


有没有办法持久保存设备的ID,以便在更新时将其作为对象的一部分?

不确定,但您必须使用

 <asp:FormView ID="fvDevices" runat="server" 
   DataSourceID="odsDevice" DataKeyNames="deviceid" ..

    [OperationContract]
    [WebGet]
    public  void updateDevice(Device device)
    {
        DeviceRep.updateDevice(device);

    }

    [OperationContract]
    [WebGet]
    public Device GetDeviceByDeviceNumber(Guid deviceid)
    {
        return DeviceRep.GetDeviceByDeviceNumber(deviceid);}
 <asp:FormView ID="fvDevices" runat="server" 
   DataSourceID="odsDevice" DataKeyNames="deviceid" ..