【问题标题】:How to Get Data From IEnumerable <model>?如何从 IEnumerable <model> 获取数据?
【发布时间】:2021-06-29 05:40:26
【问题描述】:

IEnumerable 新手,我有 2 个使用 sql 的查询,我尝试使用 IEnumerable 临时存储数据。我想从第一个查询中获取下一个查询的数据。

例如,Q1 的输出是“X”,因此“X”用作查询 2 的参数。

问题是我不知道如何正确获取第一季度的数据。

IEnumerable<DataQ1> data2 = null;
data2 = GetDataQ1(id, id2, id3, id4);
//inside GetDataQ1 is the method that return Query Q1


var x  = data2.'get column id from Q1';
//the result should be x = Q1.id;

我尝试data2.FirstOrDefault().id 并返回错误 Object reference not set to an instance of an object

我还是不明白FirstOrDefault()是不是正确的方法。

第一季度模型

public class DataQ1
{
    public string id { get; set; }
    public string name { get; set; }
    public string address { get; set; }
}

第一季度查询

IEnumerable<DataQ1> GetDataQ1(string id, string id2, string id3, string id4)
    {
        ICollection<DataQ1> data;
        var strQuery = "The Query";
        using (var dbConn = new OracleConnection(Constr))
        {
            dbConn.Open();
            data = dbConn.Query<DataQ1>(strQuery).OrderBy(t => t.id).ToList();
            dbConn.Close();
        }
        return data;
    }

抱歉英语不好。任何意见都非常感谢我。

【问题讨论】:

    标签: sql ienumerable


    【解决方案1】:

    您没有提供“GetDataQ1”的实现。

    但根据您收到的错误,data2 在您致电FirstOrDefault() 时为null。因此,您尝试迭代的列表从未使用值初始化。

    【讨论】:

    • 感谢您的回答。你能像我必须做的那样一步一步地解释吗? FirstOrDefault() 是获取数据的正确方法吗?
    • 在您的GetDataQ1 中,您为函数提供了 4 个 id,但不对它们做任何事情。你确定你正确地调用你的查询吗?您也不需要关闭您的连接,因为您使用using 创建它。您使用哪个 oracle 连接?也许参考这个例子来检索数据:using commands
    • 我明白了,使用 foreach (var par in data2) 返回最后一个 id。现在我应该制定一个特定的条件来获得单个 id。谢谢。
    猜你喜欢
    • 2020-12-08
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 2017-07-21
    • 2021-03-26
    • 1970-01-01
    相关资源
    最近更新 更多