我在 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;
}
我的问题是,我不知道如何将存储过程的结果转换为 List<MyObject>
. context.GetObjectsFromDB
返回 System.Data.Linq.ISingleResult<sprocName>
.如何将存储过程的结果转换为我的强预定义类型列表?
谢谢!
最佳答案
试试这个,
public List<MyObject> GetObjects()
{
using (DatabaseDataContext context = new DatabaseDataContext())
{
var objects = context.GetObjectsFromDB();
return new List<MyObject>(objects);
}
}
更新: 通过使用显式转换,可以像这样完成
public List<MyObject> GetObjects()
{
using (DatabaseDataContext context = new DatabaseDataContext())
{
List<MyObject> objects = (List<MyObject>)context.GetObjectsFromDB();
return objects;
}
}
关于c# - LINQ-to-SQL 中的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6372404/