LINQ-to-SQL中的存储过程

use*_*662 6 c# linq sql-server stored-procedures

我在SQL Server数据库中有一个存储过程,它返回结果列表.此存储过程在LINQ-to-SQL dbml文件中公开.然后我尝试这样调用这个存储过程:

public List<MyObject> GetObjects()
{
  List<MyObject> objects = new List<MyObject>();
  using (DatabaseDataContext context = new DatabaseDataContext())
  {
    objects = context.GetObjectsFromDB();  // This is my problem line
  }
  return objects;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,我不知道如何将存储过程的结果转换为List<MyObject>.context.GetObjectsFromDB返回一个System.Data.Linq.ISingleResult<sprocName>.如何将存储过程的结果转换为强预定义类型的列表?

谢谢!

Sye*_*eda 5

试试这个,

public List<MyObject> GetObjects()
{

 using (DatabaseDataContext context = new DatabaseDataContext())
 {
 var objects = context.GetObjectsFromDB();  
 return new  List<MyObject>(objects);
 }
}
Run Code Online (Sandbox Code Playgroud)

更新:通过使用显式转换,可以像这样完成

public List<MyObject> GetObjects()
{  
 using (DatabaseDataContext context = new DatabaseDataContext())
 {
  List<MyObject> objects = (List<MyObject>)context.GetObjectsFromDB();  
  return objects;
 }
}
Run Code Online (Sandbox Code Playgroud)