に複合型の移入しますプロパティ。私の手続きでは、私が使用するuspGetDetailsを言う:は、私は次のプロパティを持つ複合型SalesOrderHeaderを持つエンティティフレームワーク
最初の4つのプロパティを取得するための最初のステートメント。OrderNumber、CustomerName、CustomerNumber、PODate。第二には、以下の
第三選択プロパティ
CREATE PROCEDURE uspGetHeaderDetails
-- Add the parameters for the stored procedure here
@OrderNumber CHAR(21)
AS
BEGIN
DECLARE @Counter INT;
DECLARE @OrignalNumber INT;
SELECT @Counter = count(*) FROM sop10100 WHERE sopnumbe = @OrderNumber
IF @Counter > 0
BEGIN
SELECT TOP 1 sopnumbe [OrderNumber]
, custname [CustomerName]
, custnmbr [CustomerNumber]
, cstponbr [CustomerPhoneNumber]
, docdate [PODate]
, orignumb [OriginalNumber]
FROM sop10100
WHERE sopnumbe = @OrderNumber
END
ELSE
BEGIN
SELECT TOP 1 sopnumbe [OrderNumber]
, custname [CustomerName]
, custnmbr [CustomerNumber]
, cstponbr [CustomerPhoneNumber]
, docdate [PODate]
, orignumb [OriginalNumber]
FROM SOP30200
WHERE sopnumbe = @OrderNumber
END
SELECT cmmttext [Comments]
FROM sop10106 WHERE sopnumbe = @OrderNumber
SELECT sopnumbe [InvoiceNumber]
FROM sop30200 WHERE orignumb = @OrderNumber
END
以下のようInvoiceNumberをフェッチするコメント
をフェッチするためにProprtyを選択し、は
[AcceptVerbs("POST")]
public ActionResult SearchResult(FormCollection collection)
{
string orderNumber = collection["searchItem"].ToString();
Models.SalesEntities db = new Models.SalesEntities();
ObjectParameter[] parameters = new ObjectParameter[1];
parameters[0] = new ObjectParameter("OrderNumber", orderNumber);
var headerResult = db.ExecuteFunction<Models.SalesOrderHeader>("uspGetHeaderDetails", parameters);
Models.SalesOrderHeader salesOrderHeader = new Models.SalesOrderHeader();
salesOrderHeader = headerResult.SingleOrDefault();
return View(salesOrderHeader);
}
PROBLEM SalesOrderHeaderを移入するには、この手順を実行するための私の方法であり、 :これを実行すると、互換性のないデータを、関数import iとしてエラーが発生します。最初の問合せのみの結果をフェッチします。 2番目と3番目のクエリ、つまりコメントとInvoiceNumberの結果は選択されていません。
ストアドプロシージャの複数のクエリによって1つの複合型を設定することはできますか? そうでない場合、これを達成するもう1つの方法は何ですか?