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

时间:2013-06-01 18:33:13

标签: .net azure-table-storage optimistic-concurrency

问题是System.Data.Services.Client.dll和Microsoft.Data.Services.Client.dll中都存在一些类(DataServiceClientException / DataServiceRequestException / DataServiceResponse)。简单的方法是use only one of those libraries。不幸的是:

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

通常这两个库可以很好地协同工作。但是,实现here中的代码来检测并发冲突会导致错误:

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'

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

1 个答案:

答案 0 :(得分:7)

解决方案是使用C#的extern alias功能。

  1. 展开项目的参考部分。

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

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

  4. ,项目建设很好。