通过WCF服务返回列表<t> </t>

时间:2014-07-29 13:09:28

标签: c# visual-studio linq-to-sql

我正在编写WP 8应用程序,我需要通过WCF服务返回用户列表。 我在数据库中有两个表:Users(包含位置和其他用户的数据)和Tabs(包含两个字段u1ID(我的ID)和u2ID(用户我可以在地图上看到。。因此,我得到所有u2ID并将它们与Id表的Users字段进行比较。如果它们相似 - 我将此用户添加到列表中。 但是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;
        } 

1 个答案:

答案 0 :(得分:1)

您需要处理基本循环。

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;
} 

你应该在数据库上做所有这些事情,而不是像我一样在它之间实现它。