我有一個相對簡單的用例失敗。考慮以下代碼:LINQ + WCF +交易
[OperationBehavior(TransactionScopeRequired = true)]
public IEnumerable<StatusRecord> ReadActive(int contactID, bool isActive)
{
var result = from n in ORM.Default.Table<StatusRecord>()
where n.lng_contact_id == contactID && n.dte_effective_end == null
select n;
return result;
}
這是使用我們自己的邪惡來源的自定義LINQ-SQL提供程序。通常情況下,這種類型的通話效果很好,但是當從DTC處理的WCF通話中使用它時,它會掛起。我的理論是,將結果序列化到數組中不知何故發生在事務範圍之外,因此掛起。此外,我的理論是一個事實,即改變線
return result;
到
return result.ToArray();
使事情工作的支持。雖然我很高興有一個解決方法,但似乎有一個更好的方式來獲得這種行爲。請指教。謝謝!
當然,你想在你的查詢返回給你的WCF客戶端之前實現(ToList()/ ToArray()等)你的查詢嗎? – StuartLC 2010-09-01 19:31:54