OData的最新更新破坏了我的代码,我对如何解决它感到茫然。到现在为止,我一直非常高兴地使用
https://my.url.com/en-GB/odata/applicationuser(2)?$expand=FacebookProfile,TwitterProfile,GoogleProfile
现在,我意识到这可能会破坏OData规范,并且可能需要使用
https://my.url.com/en-GB/odata/applicationuser(2)?$expand=FacebookProfile($select=Name)...
相反,但使用其中任何一个都会给出
"message":"The query specified in the URI is not valid. The property 'FacebookProfile' cannot be used in the $expand query option."
这有点不太有帮助。它肯定可以在$ expand查询选项中使用,直到几天前。
我尝试过声明复杂类型和属性的事情:
protected override EntitySetConfiguration<ApplicationUser> CreateEntitySet(ODataConventionModelBuilder builder, Type controllerType)
{
builder.ComplexType<FacebookProfile>();
builder.ComplexType<TwitterProfile>();
builder.ComplexType<MicrosoftAccountProfile>();
builder.ComplexType<GoogleProfile>();
builder.ComplexType<AzureActiveDirectoryProfile>();
var userType = builder.EntityType<ApplicationUser>();
userType.ComplexProperty(u => u.FacebookProfile);
return base.CreateEntitySet(builder, controllerType);
}
但到目前为止没有任何效果。
有谁知道最新的OData NuGet更新中发生了什么:具体来说,收紧了什么?总之,我的旧实现如何违反规范?