条件付きでデータを選択するストアド プロシージャを作成しますが、問題は次のとおりです:-
RequiredIDID = 2の場合(結合テーブルからいくつかのデータが選択され、そうでない場合はelseステートメントで選択されていません)、linq関数にマッピングした後、この問題が発生します
関数に requirdID = 2 を渡す場合、proc の最初の選択が実行されるので問題は発生しませんが、他の requirdID (例: = 3) を渡すと、このメッセージが表示されます。
データ リーダーは、指定された 'RealEstateCenterModel.SearchForRealState_Reader' と互換性がありません。タイプ 'FloorTypeCategory' のメンバーには、データ リーダーに同じ名前の対応する列がありません。
USE [RealEstateCenter]
GO
/****** Object: StoredProcedure [dbo].[TestOptionalParameter] Script Date: 08/23/2012 07:29:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[TestOptionalParameter]
@RequiredIDID int =NULL
as
if @RequiredIDID=2
begin
SELECT FloorSpace.SpaceFrom, RealEstateCategoryDetails.RequiredCategoryTypeName, FloorType.FloorTypeCategory, FloorType.FloorNotes,
RealEstateTypes.RequiedType
FROM PersonalRealStateDetails INNER JOIN
FloorSpace ON PersonalRealStateDetails.FloorSpaceID = FloorSpace.FloorSpaceID INNER JOIN
RealEstateCategoryDetails ON PersonalRealStateDetails.RequiredCategoryTypeID = RealEstateCategoryDetails.RequiredCategoryTypeID INNER JOIN
FloorType ON PersonalRealStateDetails.FloorTypeID = FloorType.FloorTypeID INNER JOIN
RealEstateTypes ON RealEstateCategoryDetails.RequiredID = RealEstateTypes.RequiredID
end
else
begin
SELECT FloorSpace.SpaceFrom, RealEstateCategoryDetails.RequiredCategoryTypeName, RealEstateTypes.RequiedType
FROM PersonalRealStateDetails INNER JOIN
FloorSpace ON PersonalRealStateDetails.FloorSpaceID = FloorSpace.FloorSpaceID INNER JOIN
RealEstateCategoryDetails ON PersonalRealStateDetails.RequiredCategoryTypeID = RealEstateCategoryDetails.RequiredCategoryTypeID INNER JOIN
RealEstateTypes ON RealEstateCategoryDetails.RequiredID = RealEstateTypes.RequiredID
end
どうすればこの問題を解決できますか?