c# - LINQ-to-SQL 中的存储过程

标签 c# sql-server linq 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;
}

我的问题是,我不知道如何将存储过程的结果转换为 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/

相关文章:

sql-server - 为什么 SELECT FROM sys.dm_db_index_usage_stats 返回两行/表?

sql-server - 同一列 ISNULL 两次

c# - 检查两个集合中是否存在任何元素

c# - RibbonControl 正在拉伸(stretch)图像

c# - "is not null here"

c# - 什么是 C# 中的加速器以及如何使用它们?

c# - 使用高级加密标准算法 (AES) 在 Typescript 中加密字符串并在 C# 中解密

sql-server - 在SQL Server中,有没有办法避免使用游标?

c# - 使用 LinQ 从列表中获取不同的列表对象

ASP.NET Web API返回可查询的DTO?