2010-02-02 68 views
1

我正在使用visual studio 2008,並創建了一個存儲過程來選擇返回兩個不同的結果集。我拖存儲過程上一個LINQ to SQL的DBML DataContext類,從而導致Visual Studio創建在CS文件下面的代碼:在Visual Studio 2008中有多個結果的LINQ to SQL存儲過程

[Function(Name="dbo.List_MultiSelect")] 
public ISingleResult<DataAccessLayer.DataEntities.List_MultiSelectResult> List_MultiSelect() 
{ 
    IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod()))); 
    return ((ISingleResult<DataAccessLayer.DataEntities.List_MultiSelectResult>)(result.ReturnValue)); 
} 

不宜設計師產生使用IMultipleResults的代碼?還是我必須手動編碼?

回答

1

使用設計器將返回ISingleResult,而使用SqlMetal將生成您期望的IMultipleResult。否則,是的,你可能不得不跳進去並直接調整它。

一個簡單的方法是使用SqlMetal然後複製/粘貼它生成的代碼。請記住,將其粘貼到設計器代碼中可能並不理想,因爲後續代碼生成會覆蓋它。也許你可以將相關的代碼移到一個部分類來避免這個問題。

我在這裏的詳細答案解決了這個問題:SqlMetal wrongly generates the return type of my stored proc (LINQ)

相關問題