我目前正在一个项目中使用 WebApi OData,并且遇到了一个非常令人沮丧的问题。我正在使用使用 EF5 DbContext 设置的实体框架数据库拳头模型,这是 Visual Studio 2012 和 .NET 4.5 的默认设置。我的问题是,如果我在 Entity Framework 的实体上使用 OdataModelConventionBuilder 为 OData 端点生成 Edm,OData $metadata 找不到任何键值,也无法正确生成实体之间的关联。
我相信这是因为 DbContext 生成的实体上没有 DataAnnotation 属性。如果我添加属性,键会突然起作用,但这不是解决方案,因为如果重新生成模型,这些属性将会丢失。
是否有针对此问题的已知解决方法?
我目前不得不使用 ODataModelBuilder 手动构建我的 OData Edm,它被证明是乏味且容易出错的。