使用Microsoft.WindowsAzure.StorageClient.TableServicesContext并检测并发更新冲突

Jos*_*des 5 .net optimistic-concurrency azure-table-storage

问题是System.Data.Services.Client.dll和Microsoft.Data.Services.Client.dll中都存在一些类(DataServiceClientException/DataServiceRequestException/DataServiceResponse).简单的方法是只使用其中一个库.不幸:

  • 无法删除System.Data.Services.Client.dll,因为它是使用Microsoft.WindowsAzure.StorageClient.TableServicesContext所必需的
  • Azure上的Microsoft.WindowsAzure.StorageClient.TableServicesContext需要Microsoft.Data.Services.Client.dll.

通常这两个库可以很好地协同工作.但是,从此处实现代码以检测并发冲突会导致错误:

Error   1   The type 'System.Data.Services.Client.DataServiceRequestException' exists in both 'C:\Program Files\Microsoft WCF Data Services\5.0\bin\.NETFramework\Microsoft.Data.Services.Client.dll' and 'C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.Services.Client.dll'
Error   2   The type 'System.Data.Services.Client.DataServiceResponse' exists in both 'C:\Program Files\Microsoft WCF Data Services\5.0\bin\.NETFramework\Microsoft.Data.Services.Client.dll' and 'C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.Services.Client.dll'
Error   3   The type 'System.Data.Services.Client.DataServiceClientException' exists in both 'C:\Program Files\Microsoft WCF Data Services\5.0\bin\.NETFramework\Microsoft.Data.Services.Client.dll' and 'C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.Services.Client.dll'
Run Code Online (Sandbox Code Playgroud)

因为System.Data.Services.Client.DataServiceClientException,DataServiceRequestExceptionDataServiceResponse类都无法访问,因为它们存在于两个库中.在使用Microsoft.WindowsAzure.StorageClient.TableServicesContext时如何检测并发更新冲突?

Jos*_*des 7

解决方案是使用C#的extern别名功能.

  1. 展开项目的引用部分.

  2. 右键单击System.Data.Services.Client并选择属性.

  3. 将别名从"全局"更改为"系统"或其他内容.

这个项目很好.