2010-02-02 31 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)

相关问题