每个人 - 我有以下一组对象:
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();
}
}
答案 0 :(得分:0)
几点说明:
用户是班级吗?如果是这样,为什么要通过ref
将其传递给GetUserDevices?除非您想要更改该引用的含义,否则不要这样做。
另外,你为什么要这样做? User locUSer = user;
以下是我如何调试您的问题:删除该查询的部分内容,直到您获得数据为止。例如,删除最后一个连接语句,重新运行查询,并查看出错的位置。