Linq: несколько отношений к одной таблице - PullRequest
1 голос
/ 09 декабря 2008

У меня такая же проблема, как у этого парня :

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

Что случилось с этим?

Ответы [ 2 ]

1 голос
/ 11 декабря 2008

Мне пришлось создать функцию для getStaffbyID и вручную вызывать ее, когда мне нужно имя вместо идентификатора.

    Dim id As String = 1
    Session("BusinessPlanID") = id

    Dim oLinq As New Linq
    Dim bp As BusinessPlan = oLinq.getBusinessPlanById(id)

    Dim assignedStaff As Staff = oLinq.getStaffById(bp.AssignedStaffID)
    Dim mp As Staff = oLinq.getStaffById(bp.MPStaffID)

    Public Function getBusinessPlanById(ByVal inId As String) As BusinessPlan

        Dim db As New BusinessPlanDataDataContext

        Dim bpItem = (From b In db.BusinessPlans _
                      Select b _
                      Where b.BusinessPlanID = inId).SingleOrDefault

        Return bpItem

    End Function

    'Linq Class --------------------------------------------------------'

    Public Function getStaffById(ByVal inId As String) As Staff

       Dim db As New BusinessPlanDataDataContext

       Dim staffItem = (From s In db.Staffs _
                       Select s _
                       Where s.StaffID = inId).SingleOrDefault

       Return staffItem

    End Function
0 голосов
/ 10 декабря 2008

Добавляя две ссылки, вы говорите, выберите все строки, где PK = это и PK = это. Поскольку Pk уникален, это условие всегда будет ложным.

Я не очень хорошо знаю linq, но в SQL вы бы дважды ссылались на таблицу и использовали псевдоним, как в

.... ОТ персонал tblstaff1, персонал tblstaff2

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