سؤال

لدي وظيفة تسمى GetUserByOpenId لا أريد أن أستخدم هذه الوظيفة على الإطلاق

    Public Function GetUserByOpenID(ByVal claimedidentifier As String) As User Implements IUserRepository.GetUserByOpenID
        Dim user = (From u In dc.Users
                    Join o In dc.OpenIDs On u.ID Equals o.UserID
                    Where o.ClaimedIdentifier = claimedidentifier
                    Select u).FirstOrDefault
        Return user
    End Function

ما أريد حقًا أن أكون قادرًا على القيام به هو استخدام وظيفة "getUsers" الخاصة بي (iqueryable) والقيام بالانضمام إلى طبقة الخدمة الخاصة بي.

    Public Function GetUsers() As IQueryable(Of User) Implements IUserRepository.GetUsers
        Dim users = (From u In dc.Users
                    Select u)
        Return users.AsQueryable
    End Function

هل يمكن لأي شخص أن يخبرني كيف ستبدو الطريقة لإرجاع بيانات Appropraite باستخدام وظيفة مماثلة لهذا

    Public Function GetAllUsers() As System.Collections.Generic.IList(Of User) Implements IUserService.GetAllUsers
        Return _UserRepository.GetUsers().Where(Function(u) (Not u.isClosed)).ToList
    End Function
هل كانت مفيدة؟

المحلول

حسنًا ، يبدو أنك يجب أن يكون لديك علاقة FK بين OpenIDs والمستخدمين ولكنك لا تفعل ذلك. إذا قمت بإنشاء هذه العلاقة ، فستتمكن من اجتيازها بسهولة عبر الممتلكات وليس عليك إجراء الاستعلام على الإطلاق (إلى جانب مكان بسيط).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top