Выберите конкретное значение для отображения в текстовом поле в представлении SQL - PullRequest
2 голосов
/ 16 апреля 2011

Я довольно новичок в программировании в целом, поэтому я собираюсь уложить этот вопрос, по крайней мере, в тысячи способов, и мне жаль, что я забыл об этом.У меня есть несколько таблиц, которые я создал в базе данных SQL.У них есть связи по внешнему ключу и пара таблиц один ко многим.У меня есть таблица сотрудников и таблица телефонных номеров, которые связаны между собой.

У всех сотрудников есть по крайней мере 1 номер, у некоторых сотрудников есть 2 или более номеров в списке, и я хочу иметь возможность выбрать, какой номер из нескольких отображатьв текстовом поле или даже в паре текстовых полей.Если я сделаю textbox.text = employee.PhoneNumber (subsonic), то это даст мне только первый номер.Может ли кто-нибудь указать мне руководство или объяснить, как я бы выбрал, какое из указанных значений я хотел бы показать в этом текстовом поле?

Большое спасибо за любую помощь, которую вы можете оказать.

ps. Когда я тестирую вид в sql, один и тот же сотрудник отображается в списке несколько раз из-за разных номеров, поэтому я знаю, что данные есть. Я просто не знаю, как получить доступ к двум другим телефонным номерам в списке.

1 Ответ

0 голосов
/ 16 апреля 2011

У меня нулевой опыт работы с дозвуком, но выглядит странно, что вы можете получить доступ к не скалярному значению, как это (сотрудник с номером телефона является отношением 1-n или mn, поэтому объекты сотрудника НЕ ​​должны иметь скалярное поле, содержащее номер телефона, но набор из 0 или более объектов телефонных номеров), если ваши объекты сотрудников имеют скалярный объект телефонных номеров, я бы рекомендовал проверить отношение

// edit

, чтобы ваш VIEW содержал что-то вродеthis:

employee + phone  
John Doe | 123  
John Doe | 456  
Jane Doe | 789

допустим, что результатом является перечисление некоторого типа T, содержащее значения в виде свойств или полей с заданными именами ...

, поэтому у вас есть

IEnumerable< T > data; // initialized somewhere else
IEnumerable< IGrouping<WhateverTypeEmployeeIs,T>> tmp = from x in data group x by x.employee;
var employees = from x in tmp select new { employee = x.Key, phoneNumbers = x.Select(y => y.phone).ToArray() };

сотрудники будут содержать IEnumerable <> нового анонимного типа с 2 свойствами:
employee - содержит вашего сотрудника
phoneNumbers - содержит массив телефонных номеров

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