Вызов методов расширения LINQ через SqliteDataReader - PullRequest
1 голос
/ 25 июня 2011

Я пытаюсь обработать вывод из SQLiteDataReader, и мне было интересно, с одной стороны, почему я не могу вызвать метод расширения Take<> для считывателя (как, очевидно, есть System.Data.SQLite.Linq сборка), и, с другой стороны, если есть, возможно, лучший способ работы с результатами читателя в целом, поскольку я планирую реализовать для них общие методы CRUD.

using (var con = new SQLiteConnection(str.ConnectionString))
{
    con.Open();
    using (var cmd = new SQLiteCommand(sql, con))
    {
        using (SQLiteDataReader data = cmd.ExecuteReader())
        {
            if (data.HasRows)
            {
                var txt = new StringBuilder();
                while (data.Read())
                {
                    for (int i = 0; i < data.FieldCount; i++)
                    {
                        txt.AppendFormat("{0} ", data.GetValue(i));
                    }
                    txt.AppendLine(Environment.NewLine);
                }
                Console.WriteLine(txt.ToString());
            }
            data.Close();
        }
    }
    con.Close();
}

Чтобы метод расширения работал, я попробовал что-то вроде:

txt.AppendFormat("{0} ", Convert.ToString(data.GetValue(i)).Take(10));

Но вместо этого строка заполняется типами.

Любой совет обязательно будет оценен. Заранее большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...