0
我有一个问题,同时根据参数执行不同的结果集。 我有exec的参数的基础上,两个查询一个SP,这两个查询执行一次例如:存储过程动态sql在实体框架4.1
CREATE PROCEDURE [dbo].[ShowMessages]
@context int,
AS
BEGIN
--CALENDAR ADMIN QUEUE
if @context = 1
BEGIN
Select CustomerName, CustomerAddress from Customer
END
ELSE if @queueContext = 2 OR @queueContext = 6
BEGIN
Select EmployeeName, EmployeeAddress from Employee
END
END
=== 我和复杂类型映射是:EF产生复杂类型两个字段CustomerName
,CustomerAddress
。 EF引发错误IDataReader
。但是这个错误很少发生,即使我通过第一个查询来调用。
我该如何实现此功能?
感谢您的快速反应,但对我来说,有建筑的义务,是否有任何固体证明它不可能? – 2012-04-09 08:59:01
很少发生此错误。如果我@context = 1总是。 – 2012-04-09 09:05:28
没有证据需要。 EF在设计时将结果集中的列名映射到复杂类型的属性名称,并且只有一组映射是可能的。所以你可以映射第一个或第二个查询,但不能同时映射。对查询中的列使用相同的名称,或使用两个不同的SP并根据上下文值调用它们。 – 2012-04-09 09:13:53