经过大约一天半的搜索(并重新应用 VS2008 SP1),这篇博客文章终于把事情弄清楚了:
Astoria V.Next 适用于 .NET 3.5 SP1 -> 版本控制问题
事实证明,我的安装一切正常,但我忽略了 InitilizeService() 方法的签名发生了如此微妙的变化这一事实。正如斯蒂芬福特在他的博客中指出的那样:
1: //change the IDataServiceConfiguration to DataServiceConfiguration
2: public static void InitializeService(DataServiceConfiguration config)
3: {
4: config.SetEntitySetAccessRule("*", EntitySetRights.All);
5: //take advantage of the "2.0" features
6: config.DataServiceBehavior.MaxProtocolVersion =
7: System.Data.Services.Common.DataServiceProtocolVersion.V2;
8: }
您需要更改的第一件事是在第 2 行,将接口IDataServiceConfiguration更改为只是DataServiceConfiguration(我确信有更好的方法可以做到这一点,我还没有想出来。)。接下来,将 DataServiceBehavior 的 MaxProtocolVersion 属性设置为 V2。之后,您可以利用所有新功能!
强调我的。一个简单的“我”所带来的不同是惊人的。为了回答斯蒂芬的担忧,这也得到了 MSDN 的支持,但他们目前没有指出引用接口与实现对象的区别:
配置数据服务(ADO.NET 数据服务)
这是VB中的代码:
'change the IDataServiceConfiguration to DataServiceConfiguration
Public Shared Sub InitializeService(ByVal config As DataServiceConfiguration)
config.SetEntitySetAccessRule("*", EntitySetRights.All)
'take advantage of the "2.0" features
config.DataServiceBehavior.MaxProtocolVersion = System.Data.Services.Common.DataServiceProtocolVersion.V2
End Sub
编译,测试,通过。我刚刚迈出了迈向更大世界的第一步……