编程语言
首页 > 编程语言> > c#-实体框架-存储过程结果为没有主键的实体

c#-实体框架-存储过程结果为没有主键的实体

作者:互联网

如果已经提出并回答了这个问题,请原谅我.如果是这样,请指出.我正在使用带有最新Service Pack的VS2010 over .Net 3.5(平台更新不在我的控制范围内).

我有一个存储的过程,它将返回类似以下的行.没有其他列可以用作此实体的键;结果看起来像这样:

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,并且可能根本无法解决涉及使用实体框架的问题.

标签:net-3-5,linq-to-entities,ado-net-entity-data-model,c,entity-framework
来源: https://codeday.me/bug/20191102/1991276.html