c# - Entity Framework - 存储过程结果作为没有主键的实体

标签 c# entity-framework .net-3.5 linq-to-entities ado.net-entity-data-model

如果这个问题已经被问到并得到回答,请原谅我。如果是这样,请指出我。我在 .Net 3.5 上使用 VS2010(平台更新不受我控制)和最新的服务包。

我有一个存储过程,它将返回如下行。没有其他列可以作为该实体的键;结果如下所示:

COUNTRYCODE     QUANTITY
USA             100
UK              250
USA             300
USA             190

等等。

我按照 http://blogs.microsoft.co.il/blogs/gilf/archive/2009/03/13/mapping-stored-procedure-results-to-a-custom-entity-in-entity-framework.aspx 中的步骤操作

以及http://msdn.microsoft.com/en-us/library/cc982038(v=VS.90).aspx

这一直导致错误“实体类型 soAndso 没有定义键。为此实体类型定义键

我们如何减少这个错误?我这里只是不需要主键,不能修改存储过程。我要求 SOF 作为最后的手段。请帮忙。非常感谢。

最佳答案

如果您不需要主键,那么我假设您不需要能够修改此数据并将其提交回服务器。在这种情况下,您应该使用复杂类型而不是实体类型。复杂类型是类,可以像实体一样用作 DTO,但不能将复杂类型用作基本的 Insert/Update/Delete 对象。

编辑: 似乎复杂类型在 EFv1 (.NET 3.5) 中可能不可用,除非作为对实体类型的标量属性进行分组的方法。不幸的是,EFv1 远不如 EFv4,并且可能根本无法解决涉及使用 Entity Framework 的问题。

关于c# - Entity Framework - 存储过程结果作为没有主键的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6686238/

相关文章:

c# - EF Code First 使用 IEnumerable <> 进行递归查询?

c# - 索引超出范围。必须为非负且小于集合参数名称的大小 :index

c# - 随机数看起来不是很随机

c# - VS 2015 MVC6 引用/依赖错误

c# - 理解枚举——用作常量

c# - 如何在 C# 中指定 RGB 值的范围

c# - 如何使用 LINQ 链接 OR 子句?

c# - 无法确定类型之间关联的主体端 - Entity Framework 错误,同一类之间的类关系

vb.net - VB.NET 3.5 SocketException在部署但不在开发机器上

javascript错误: this.节点为空或不是对象