0
パラメータに基づいて異なる結果セットを実行しているときに問題があります。 私は、両方のクエリは、例えば一度だけ実行されるパラメータに基づいて2つのクエリをexecし、SPを持っている:エンティティ・フレームワーク4.1のストアド・プロシージャの動的SQL
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
のエラーをスローします。しかし、このエラーはまれに私が最初のクエリで呼び出されても発生します。
どうすればこの機能を実現できますか?
おかげで、私の場合には、建築の義務は、任意の固体は、そこにあるあります可能ではないという証拠? –
このエラーはほとんど発生しません。 i @context = 1の場合は常に。 –
必要な証拠はありません。 EFは、設計時に結果セットの列名を複合型のプロパティ名にマップし、単一のマッピング・セットのみが可能です。したがって、第1または第2のクエリをマッピングすることはできますが、両方をマッピングすることはできません。クエリの列に同じ名前を使用するか、2つの異なるSPを使用し、コンテキスト値に基づいてそれらを呼び出す。 –