Линк Родитель / ребенок отношения - нет intellisense для ребенка - PullRequest
0 голосов
/ 25 мая 2011

У меня есть отношения между родителями и дочерними таблицами

ParentTable
  ParentID Int, Identity
  ParentDescription VarChar

ChildTable
  ParentID Int
  ChildCode VarChar
  ChildDescription VarChar

ParentTable.ParentID is a PK
ChildTable.ParentID is a FK to ParentTable.ParentID
ChildTable.ParentID + ChildTable.ChildCode is a PK

Я добавил вышеперечисленное, поскольку данные linq увлекают за собой, и связь отображается в конструкторе Однако, когда я пытаюсь использовать столбцы дочерней таблицы, они не отображаются в IDE intellisense

var x = from y in db.ParentTable
                select new
                {
                    y.ParentDescription,
                    code = y.ChildTable....(Only the lamda functions are shown in intellisense here)
                };

Для дочерней таблицы значение intellisense отсутствует, и если я ввожу .ChildDescription, я получаю сообщение об ошибке "не содержит определения для" ChildDescription ""

Я что-то упускаю, предположительно.

1 Ответ

1 голос
/ 25 мая 2011

Это потому, что это отношение один-ко-многим, а ваше свойство ChildTable является совокупностью всех связанных дочерних элементов - это не одиночный дочерний элемент. Если вы хотите выбрать ParentDescription, ChildDescription пары, попробуйте это:

var x = from y in db.ParentTable
        from x in y.ChildTable
        select new
            {
                y.ParentDescription,
                code = x.ChildDescription
            };

Edit:

Вы также можете сделать это, чтобы получить ParentDescription и коллекцию всех связанных ChildDescriptions:

var x = from y in db.ParentTable
        select new
            {
                y.ParentDescription,
                codes = y.ChildTable.Select(x => x.ChildDescription)
            };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...