【问题标题】:How return a Tuple from a SQL Server 2012 database Table如何从 SQL Server 2012 数据库表中返回元组
【发布时间】:2014-11-14 03:39:27
【问题描述】:

我在 SQL Server 2012 数据库的单个表中有 2 列 GetProvidersGetAwaitingPatients

  • GetProviders 是存储为 Tuple<long, string> 数组的元素
  • GetAwaitingPatients 的元素存储为 Tuple<long, long, string> 数组

我正在尝试使用 C# 和 Linq 以及这两种方法从单个表中的每一列中读取并返回数据。

public Tuple<long, string>[] GetProviders(Guid sessionId)
{
    var objproviders = (from objProvider in db.Licenses
                        where objProvider.GUID == Convert.ToString(sessionId)
                        select objProvider.GetProviders).ToList();

    return objproviders;
}

我遇到了一个错误

无法将表达式类型“system.Collection.generic.List”转换为返回类型“System.Tuple []

本列数据示例:

   10556, Memorial
   21456, Dallas
   38678, Chicago

这里是第二种方法:

 public Tuple<long, long, string>[] GetAwaitingPatients(Guid sessionId)
 {
     var objGetAwaiting = (from objGetAwaitingPatient in db.Licenses
                           where objGetAwaitingPatient.GUID == Convert.ToString(sessionId)
                           select objGetAwaitingPatient.GetAwaitingPatients).ToList();

     return objGetAwaiting;
}

我遇到了一个错误

无法将表达式类型“system.Collection.generic.List”转换为返回类型“System.Tuple []

本列数据示例:

   10,10556, Steven
   35,21456, Sandy
   77,21456, John

如何返回正确的返回类型并正确执行?我尝试使用 list 作为列表返回,但这似乎对我不起作用。非常感谢任何见解或帮助。

【问题讨论】:

  • 您可以更改您的返回类型或构建您似乎期望的元组。错误信息非常简单,为什么在调用 ToList() 时会期待元组?
  • 我想看看是否可以将其转换为 List,但没有成功
  • 你可以试试这个链接,看起来类似于你的问题stackoverflow.com/questions/18664186/… List> tuples = subjectList.Select(x => new Tuple(x , false)).ToList();
  • 真正的解决方案是以真实的关系方式存储数据 - 不要将多个值存储到单个表格单元格中!如果您有五个元组 - 它们应该是 五行 在单独的表中!
  • 为什么属性 GetAwaitingPatients 的名字像一个方法?我正要发布一个答案,您根本没有调用此方法。

标签: c# sql-server linq


【解决方案1】:

您是否尝试过简单地调用ToArray() 扩展方法而不是ToList()
这应该可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多