Заполнить таблицу LINQ в коде? - PullRequest
2 голосов
/ 02 марта 2011

Вопрос: я хочу заполнить таблицу LINQ из кода, а не из базы данных.

Возможно ли это?

System.Data.Linq.Table<Question> myquestions = new System.Data.Linq.Table<Question>();

Тогда что-то вроде:

myquestions.Rows.Add(aquestion);

Ответы [ 2 ]

3 голосов
/ 02 марта 2011

Просто заполните обычный DataTable, и вы можете использовать его из LINQ

using System;
using System.Data;

namespace ConsoleApplication10
{
  class Program
  {
    static void Main(string[] args)
    {
      var dt = new DataTable();
      dt.Columns.Add("Id", typeof(int));
      dt.Columns.Add("Project Name", typeof(string));
      dt.Columns.Add("Project Date", typeof(DateTime));

      for (int i = 0; i < 10; i++)
      {
        var row = dt.NewRow();
        row.ItemArray = new object[] { i, "Title-" + i.ToString(), DateTime.Now.AddDays(i * -1) };
        dt.Rows.Add(row);
      }

      var pp = from p in dt.AsEnumerable()
               where (int)p["Id"] > 2
               select p;

      foreach (var row in pp)
      {
        Console.WriteLine(row["Id"] + "\t" + row["Project Name"] + "\t" + row["Project Date"]); 
      }

      Console.ReadLine();
    }
  }
}

В приведенном выше коде вы можете увидеть, как использовать LINQ для фильтрации определенных записей из DataTable. Вам нужно добавить сборку System.Data.DataSetExtensions в ваши ссылки

IEnumerables доступны только для чтения, поэтому вы не можете сделать это так, как вы просите, но то, что я представил, является правильным способом.

0 голосов
/ 02 марта 2011

Может быть, вы что-то не так поняли. LINQ - это язык запросов без побочных эффектов. Таким образом, вы не можете заполнить любую структуру этим. Вы можете создать запрос только к любой существующей информации и выполнить какое-либо преобразование или фильтрацию.

Впоследствии вы можете использовать этот запрос для заполнения некоторого элемента, используя foreach(), ToList() или ToArray(), но вы не можете напрямую использовать LINQ для вставки какого-либо элемента в какой-либо другой объект или коллекцию.

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