Entity framework 实体框架5功能导入

Entity framework 实体框架5功能导入,entity-framework,asp.net-mvc-4,entity-framework-5,Entity Framework,Asp.net Mvc 4,Entity Framework 5,我在我的一个项目中首先使用EF5数据库 我有一个存储过程,它根据一些条件返回数据。如果存储过程中的任何条件为true,则返回类型相同 但是,如果非为true,则存储过程中的最后一条语句为RETURN。在实体框架中,此存储过程的返回类型映射到复杂类型 如果发生上述情况,我将得到以下错误。 数据读取器与指定的“Context.ComplexType”不兼容。“Id”类型的成员在数据读取器中没有同名的对应列。 如何解决此问题?当条件为false时,您可以返回一个空数据集,而不允许存储过程执行返回操作:

我在我的一个项目中首先使用EF5数据库

我有一个
存储过程
,它根据一些条件返回数据。如果存储过程中的任何条件为
true
,则返回类型相同

但是,如果
true
,则存储过程中的最后一条语句为
RETURN
。在实体框架中,此存储过程的返回类型映射到
复杂类型

如果发生上述情况,我将得到以下错误。
数据读取器与指定的“Context.ComplexType”不兼容。“Id”类型的成员在数据读取器中没有同名的对应列。


如何解决此问题?

当条件为false时,您可以返回一个空数据集,而不允许存储过程执行返回操作:


从dbo.Foos中选择*其中0=1

感谢您的回复。是的,这将解决问题。但是没有更好的方法吗?我的意思是,这不是存储过程的问题。这和EF有关,我不这么认为。我认为,如果您试图将存储过程映射到复杂类型,则始终需要返回数据集。