如何将字符串转换为System.Data.Objects.ObjectQuery`1[System.string]

本文关键字:System ObjectQuery string Objects Data 字符串 转换 | 更新日期: 2023-09-27 18:21:53

我有一个表Quotation存储区QuotationNumber,用于每个进行报价的用户。现在我想在我的视图中打印出QuotationNumber。

这是我在控制器中查询的内容:

Quotation iq = new Quotation();
string test = (from i in Quotations
              where i.CustomerID == c.ID
              select i.QuotationNumber).ToString();

当我显示测试时,它被输出:

System.Data.Objects.ObjectQuery`1[System.String]

有人能给我看看解决方案吗。谢谢

如何将字符串转换为System.Data.Objects.ObjectQuery`1[System.string]

试试这个:

List<string> test = (from i in Quotations
              where i.CustomerID == c.ID
              select i.QuotationNumber).ToList();

然后迭代所有结果:

foreach (string quotationNumber in test)
{
    Console.WriteLine("Found {0}", quotationNumber);
}

您有一个查询-您需要执行它。调用ToString()对您没有帮助。例如,可能有多个匹配的报价。如果你知道只有一个,你可以使用:

var query = from i in Quotations
            where i.CustomerID == c.ID
            select i.QuotationNumber;
string quotationNumber = query.Single();

var query = from i in Quotations
            where i.CustomerID == c.ID
            select i.QuotationNumber;
string quotationNumber = query.SingleOrDefault();

第一个会抛出一个没有结果的异常;如果没有结果,第二个将返回null。如果有多个结果,两者都会抛出异常。另一对选项是FirstFirstOrDefault,它们的工作方式相同,只是它们允许多个匹配。

或者,您可以迭代所有的结果:

foreach (string quotationNumber in query)
{
    Console.WriteLine("Found {0}", quotationNumber);
}

我建议您重写报价的ToString方法