返回List< T>通过WCF服务

本文关键字:通过 WCF 服务 List 返回 | 更新日期: 2023-09-27 18:15:30

我正在编写WP 8应用程序,我需要通过WCF服务返回用户列表。我在数据库中有两个表:Users(包含位置和其他用户的数据)和Tabs(包含两个字段u1ID(我的Id)和u2ID(我可以在地图上看到的用户)。因此,我得到所有u2ID并将它们与Users表的Id字段进行比较。如果它们相似,则将此用户添加到列表中。但是getAllusrs方法只返回数据库中的第一条记录。我怎样才能改正呢?

服务实现:

public List<Point> getAllusrs() 
        {
            DataClasses1DataContext data = new DataClasses1DataContext();
            var a = (from s in data.Tabs where s.u1ID == 1 select s.u2ID).ToArray();
            int inc = 0;
                List<Point> location = new List<Point>();
                foreach (var d in data.Users)
                {
                    if (a[inc] != null && d.Id == a[inc]) 
                    {
                        location.Add(new Point() { Lat = d.usrLat, Lon = d.usrLong });
                        inc++;
                    }
                }
                return location;
        } 

返回List< T>通过WCF服务

你需要练习你的基本循环。

public List<Point> GetAllUsers() 
{
    var data = new DataClasses1DataContext();
    var userIds = data.Tabs.Where(t => t.u1ID == 1).Select(t => t.u2ID).ToList();
    var users = data.Users.Where(u => userIds.Contains(u.Id)).ToList();
    var locations = users.Select(u => new Point { Lat = u.usrLat, Lon = u.usrLong }).ToList();
    return locations;
} 

你应该把这些东西都放在数据库上,而不是像我那样在中间具体化。