Я пытаюсь присоединиться к 2 таблицам с сервера sql, используя linq to sql в проекте веб-API vb.net.Код ошибки: BC30456 'idno' не является членом 'IEnumerable (Of pt)'
Я пробовал это, но он не работал.
Dim query = (From pt In db.pt
Join pt_v In db.pt_v On pt_v.paid Equals pt.paid
Where pt.paid.Contains(no1) And pt.name.Contains(no2)
Group pt By pt.paid Into grouped = Group
Select grouped.idno, grouped.age, grouped.name)
Но 'группироваться' подчеркнут красным изречение:
Код ошибки: 'IDNO' BC30456 не является членом 'IEnumerable (Of кегля).
И на каждой петле:
For Each item In query
'запрос' также подчеркнуты красным поговорку:
Expression имеет тип, который не является типом коллекции '?'.
ОБНОВЛЕНО v1
Dim query = From pt In db.pt.GroupBy(Function(d) d.paid)
Join p_v In db.p_v On p_v.paid Equals pt.Key
Where p_v.paid.Contains(no1)
Select New With {
.idno = p_v.idno,
.age = p_v.age,
.name = p_v.name
}
До сих пор не существует красный подчеркивание под любым переменным, но я не смог отобразить только один из IDNO. И в разделе «select new with» я не мог получить доступ к значениям pt, если я не использую pt.ToList, но когда я это делаю, он отображает записи 300000 ++. Мне жаль, что я раньше не объяснял достаточно. Когда я попытался получить доступ к значениям из таблицы пт,
Select New With {
.idno = p_v.idno,
.age = pt.age,
.name = pt.name
}
pt.name подчеркнут красным сказать «имя не является членом IGrouping (Of String, пт)»
Что я надеюсь является когда я выбрать для отображения значения базы данных на основе no1, скажу IDNO имеет 3 записи с одинаковым IDNO,
{.idno = 1, .age = 10, .name = someone}
{.idno = 1, .age = 12, .name = someone2}
{.idno = 1, .age = 13, .name = someone3}
..Эт только отображает один из 3.
{.idno = 1, .age = 10, .name = someone}
ОБНОВЛЕНО v2
Это то, что я сделал. Я отменил расположение таблиц, потому что я хотел направить больше полей из таблицы pt_v.
Dim query = From pt_v In db.pt_v.GroupBy(Function(d) d.paid)
Join pt In db.pt On pt.paid Equals pt_v.Key
Where pt_v.Key.Contains(no1) Or pt.pname.Contains(no2)
Select New With {
.idno = pt.idno,
.age = pt.age,
.name = pt.name,
.fod = pt_v.FirstOrDefault() 'ok
.pri = pt_v.Key 'only .Key worked for accessing field from pt_v table
.status = pt_v.status, 'underlined red
}
Там нет никаких проблем, когда я добавил .fod и .При, но .status не принято говоря
'статус не является членом IGrouping (Of String, пт)'
@ Jinx88909 пробовал. теперь idno, возраст и имя больше не подчеркнуты красным цветом, но сгруппированные подчеркнуты красным, говоря: BC36594 Определение метода «сгруппировано» в этом контексте недоступно – Nurul
@ Jinx88909 Я хотел бы, чтобы это было так же просто, как «... Группа pt By pt.paid ... ', но когда я это сделал, произошла ошибка BC36615' Into ', ожидаемая – Nurul
@ Jinx88909 скобки, которые я забыл удалить из try .distinct(). извините, но я в замешательстве. Что вы имеете в виду и как ссылаться на поля? – Nurul