2013-10-12 50 views
0

我希望得到一個Stored Procedure查詢重用存儲過程結果在代碼中第一個SQL

var labratorySerialFinalResult = repository.UoW.Orm.Database.SqlQuery<SPLabratorySerialFinalResult>("EXECUTE LabratorySerialFinalResult @OrderNo='" + project.OrderNumber + "'") 

,並使用類似的結果:

var result = projSerials.Where(x =>!labratorySerialFinalResult.Any(v => v.SerialNo == x.SerialNo) 
.Union(labratorySerialFinalResult.Where(c => c.FinalResult == "Reject"); 

但讓我以下異常:

Unable to create a constant value of type SPLabratorySerialFinalResult Only primitive types or enumeration types are supported in this context. 

回答

0
var labratorySerialFinalResult = repository.UoW.Orm.Database.SqlQuery<SPLabratorySerialFinalResult>("EXECUTE LabratorySerialFinalResult @OrderNo='" + project.OrderNumber + "'").AsEnumerable(); 

var result = projSerials.AsEnumerable().Where(x =>!labratorySerialFinalResult.Any(v => v.SerialNo == x.SerialNo) 
      .Union(labratorySerialFinalResult.Where(c => c.FinalResult == "Reject"); 

Referencing Non-Scalar Variables Not Supported

在查詢中引用非標量變量(例如實體)不支持 。執行此類查詢時,會拋出NotSupportedException異常,並顯示一條消息,指出「無法創建類型爲EntityType的 常量值。在此上下文中僅支持基本類型(如' Int32,String和Guid') 「。

+0

謝謝,但我有一個很長的查詢,重複使用SP結果多次,我鬆散很多表現這種方式... – Mohsen

相關問題