如何将OData键值添加到我的实体框架类?

史蒂夫

我正在使用MVC 5,Microsoft OData 2.1和Entity Framework6。我正在尝试使用使用EntitySetController类编写的OData提要。当我添加服务引用并使用OData元数据时,它可以看到我的资源,但是当我尝试保存它时,我得到了一个错误:

自定义工具“ DataServicesCoreClientGenerator”失败。数据服务客户端代码生成失败:指定的架构无效。错误:(0,0):错误0159:实体'...'未定义键。定义此EntityType的键。

我的OData元数据如下所示:

<edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" Version="1.0">
   <edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0">
       <Schema xmlns="http://schemas.microsoft.com/ado/2009/11/edm" Namespace="WcfResearch.Entities">
         <EntityType Name="vApplication">
           <Property Name="ApplicationName" Type="Edm.String"/>
           <Property Name="LoweredApplicationName" Type="Edm.String"/>
           <Property Name="ApplicationId" Type="Edm.Guid" Nullable="false"/>
           <Property Name="Description" Type="Edm.String"/>
         </EntityType>
       </Schema>
       <Schema xmlns="http://schemas.microsoft.com/ado/2009/11/edm" Namespace="Default">
          <EntityContainer Name="Container" m:IsDefaultEntityContainer="true">
              <EntitySet Name="Applications" EntityType="WcfResearch.Entities.vApplication"/>
          </EntityContainer>
       </Schema>
  </edmx:DataServices>
</edmx:Edmx>

我尝试使用以下代码将[Key]属性添加到vApplication类:

[MetadataType(typeof(vApplicationKey))]
public partial class vApplication
{
}

public class vApplicationKey
{
    [Key]
    public System.Guid ApplicationId { get; set; }
}

但这并不会改变我的元数据,并且错误仍然存​​在。EDMX模型中的实体密钥设置为ApplicationId。这似乎也不会影响元数据。如何获取元数据以生成具有实体密钥的架构,以便可以在带有服务引用的C#中使用它?

附言:我正在欣赏一个观点。当我直接使用一个表时,它似乎可以工作。那么如何使它与Views一起使用?

Tan Jinfu

您正在使用ODataModelBuilder来构建模型,对吗?如果是,请尝试以下操作:

EntityType _vApplicationKey=oDataModelBuilder.Entity<vApplicationKey>()
_vApplicationKey.HasKey(a => a.ApplicationId);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将滚动窗格添加到我的框架

如何将实体框架核心添加到类库(.net 核心)

如何将OPTION RECOMPILE添加到实体框架

如何将这个JScrollPane类添加到我的swing生成器中?

如何将NSOutlineViewDataSource添加到我的NSOutlineView?

如何将NAudio添加到我的项目?

如何将新对象添加到现有实体,将数据放入数据中并让EF将其添加到我的数据库中?

如何将属性添加到由实体框架生成的.cs文件

我如何将Listview标头添加到我的应用程序

我如何将 AWS env varaible 添加到我的包 json 中

我如何将物品添加到我的LI物品中

我如何将数字和字符串添加到我的 Django

我如何将源和图层添加到我的 react-map-gl

ReactJS-如何将键值对添加到数组?

Laravel:如何将键值添加到对象中?

如何将键值对添加到列表?

如何将键值对添加到deedle系列中?

如何将多个键值对添加到字典Swift

如何将键值对添加到数组中的对象?

如何将键值对添加到对象?

如何将新参数添加到我的 URL - Laravel?

如何将valgrind测试添加到我的cmake“测试”目标

如何将包集合添加到我的 Xcode 项目中?

Wix Toolset-如何将Platforminstaller属性添加到我的.wixproj

如何将具有不同类的片段添加到我的MainActivity

如何将eclipse添加到我的gnome shell收藏夹中?

如何将BundleConfig.cs添加到我的项目中?

如何将android支持库添加到我的netbeans项目中

如何将Red Bean PHP正确添加到我的项目中