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

时间:2012-01-31 06:23:55

标签: c# asp.net asp.net-mvc linq-to-sql

我有一个表格报价商店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]

请有人向我展示解决方案。感谢。

3 个答案:

答案 0 :(得分:2)

您有查询 - 您需要执行它。致电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);
}

答案 1 :(得分:2)

试试这个:

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);
}

答案 2 :(得分:0)

我建议你重写Quotation的ToString方法