复杂对象的Linq查询



Everyone-我有以下一组对象:

User { String:Name, List<Devices> }
Device {String:Name, DeviceVariationInfo }
DeviceVariationInfo { String:OS }

在数据库中,这些对象被拆分为以下表格:用户,设备,DevieVariationsInfo,UserToDevices

我正在尝试查询某个用户的设备列表及其变体信息,并使用以下查询,该查询始终返回Devices中的0项列表。我很确定我在这里做错了什么

 private void GetUserDevices(ref User user)
    {
        User locUSer = user; 
        if (user != null)
        {
            var deviesQuery = from dts in _dataConext.DB_UserToDevices
                              where dts.UserId == locUSer.Id
                              join ds in _dataConext.DB_Devices on dts.DeviceID equals ds.Id
                              join dsv in _dataConext.DB_DeviceVariations on ds.Id equals dsv.DeviceId
                              select new Device
                              {
                                  Version = ds.Version,
                                  VariationInfo = new DeviceVariation
                                  {
                                      OSVersion = dsv.OS
                                  },
                                  Name = ds.FriendlyName,
                                  Id = ds.Id
                              };
            if (deviesQuery != null)
                user.Devices = deviesQuery.ToList(); 
        }
    }

几个注意事项:

User是一个类吗?如果是,为什么要通过ref将其传递到GetUserDevices?除非你想改变引用的含义,否则不要这样做。

还有,你为什么这么做?User locUSer = user;

以下是我调试问题的方法:删除该查询的部分内容,直到取回数据为止。例如,删除最后一条联接语句,重新运行查询,然后查看哪里出了问题。

相关内容

  • 没有找到相关文章

最新更新