0

我有一个 Linq 语句,它必须检查哪个客户端连接到哪个用户

     public List<Client_Dto> GetClientByBehandelaar(string loggedInUserId)
    {
        try
        {
            int userID = Convert.ToInt32(loggedInUserId);
            nestorDBDataContext db = new nestorDBDataContext();
            var result =
                (from relaties in db.tbl_Relaties
                 where relaties.ID_Persoon == userID
                 select new Client_Dto()
                 {
                     ID = relaties.NestorNrCliënt
                 }).ToList();
            List<Client_Dto> clienten = result;
            return clienten;
        }
        catch (Exception e)
        {
            throw new ArgumentException("GetClientByBehandelaar Failed " + e);
        }
    }

但即使在数据库中有 87 个具有相同用户 ID 的情况下,它也只会选择一个。我一直盯着自己看这个..有人可以帮忙吗

4

3 回答 3

1

我在这里尝试过,您的代码有效:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{

    class Relatie
    {
        public Int32 ID_Persoon { get; set; }
        public Int32 NestorNrCliënt { get; set; }

        public Relatie(int ID_Persoon, int NestorNrCliënt)
        {
            this.ID_Persoon = ID_Persoon;
            this.NestorNrCliënt = NestorNrCliënt;
        }
    }

    class nestorDBDataContext
    {
        public List<Relatie> tbl_Relaties = new List<Relatie> {
            new Relatie(15, 27),
            new Relatie(15, 28),
            new Relatie(15, 29),
            new Relatie(15, 30),
            new Relatie(14, 30),
            new Relatie(14, 30),
            new Relatie(14, 30),
        };
    }

    class Program
    {
        public struct Client_Dto{
            public Int32 ID;
        }

        public static List<Client_Dto> GetClientByBehandelaar(string loggedInUserId)
        {
            try
            {
                int userID = Convert.ToInt32(loggedInUserId);
                nestorDBDataContext db = new nestorDBDataContext();
                var result =
                    (from relaties in db.tbl_Relaties
                     where relaties.ID_Persoon == userID
                     select new Client_Dto()
                     {
                         ID = relaties.NestorNrCliënt
                     }).ToList();
                List<Client_Dto> clienten = result;
                return clienten;
            }
            catch (Exception e)
            {
                throw new ArgumentException("GetClientByBehandelaar Failed " + e);
            }
        }

        static void Main(string[] args)
        {
            Console.WriteLine(GetClientByBehandelaar("15").Count());
            Console.ReadKey();
        }

    }
}

也许你需要看看这个布尔comarisonID_Persoon == userID

使用 Debug.WriteLine 为您输出结果。

于 2012-08-08T09:30:13.450 回答
0
    public List<Client_Dto> GetClientByBehandelaar(string loggedInUserId)
    {
        try
        {
            int userID = Convert.ToInt32(loggedInUserId);
            List<Client_Dto> result = new List<Client_Dto>();
            using (nestorDBDataContext db = new nestorDBDataContext())
            {
                IEnumerable<Client_Dto> client_dto =
                    (from relaties in db.tbl_Relaties
                     where relaties.ID_Persoon == userID
                     select relaties);
                result = client_dto.ToList();
                return result;
            }                               
        }
        catch (Exception e)
        {
            throw new ArgumentException("GetClientByBehandelaar Failed " + e);
        }
    }
于 2012-08-08T09:19:02.273 回答
-2

试试这个 :

int userID = Convert.ToInt32(loggedInUserId);
        nestorDBDataContext db = new nestorDBDataContext();
        List<Client_Dto> clienten =
            (from relaties in db.tbl_Relaties
             where relaties.ID_Persoon.Equals(userID)
             select relaties
             ).ToList();
        return clienten;

也许它工作。

于 2012-08-08T08:59:27.687 回答