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