Можно ли использовать таблицы одного типа в Linq to SQL? - PullRequest
1 голос
/ 20 апреля 2010

Допустим, у меня есть объектная модель, где у меня много коллекций одного типа.

Например, что-то вроде

class StockMarketData {
  List<SummaryData> WeeklySummary;
  List<SummaryData> MonthlySummary;
}

class SummaryData {
  DateTime DateTime {get; set;}
  double Value {get; set;}
}

Эти списки будут отображаться в таблицах базы данных.

Если вы действительно используете L2S для генерации модели из базы данных, вы получите что-то вроде:

class StockMarketData {
      List<WeeklySummaryData> WeeklySummary;
      List<MonthlySummaryData> MonthlySummary;
    }

Несмотря на то, что WeeklySummaryData и MonthlySummaryData имеют одинаковую форму.

Возможно ли для Linq to SQL создавать таблицы из базы данных сводных данных, но в каждой таблице должен содержаться один и тот же тип (например, как показано в верхнем примере).

1 Ответ

2 голосов
/ 20 апреля 2010

Этот сценарий поддерживается в конструкторе в структуре сущностей, но не в конструкторе (dbml) в linq to sql.

Чтобы перейти по более ручному пути, создайте класс, который не является базой данныхсущности, которая называется SummaryData и заполняет класс, когда вы выбираете либо WeeklySummaryData, либо MonthlySummaryData.Затем вы можете выставить свойства, подобные этим, в частичном классе DataContext (Просмотреть код в dbml):

IQueryable<SummaryData> WeeklySummary
{
    get
    {
        from wsd in WeeklySummaryData
        select new SummaryData { DateTime = wsd.DateTime, Value = wsd.Value }
    }
}

IQueryable<SummaryData> MonthlySummary
{
    get
    {
        from msd in MonthlySummaryData
        select new SummaryData { DateTime = msd .DateTime, Value = msd.Value }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...