大家 - 我有以下的一组对象:LINQ查询的复杂对象
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();
}
}
“我试图查询设备的丢失以及它们的变化信息” - 这是什么意思? – 2011-06-13 02:22:06
另外,请注意deviesQuery将永远不会返回null。查询可能返回零结果,但查询对象本身不会为空。 – 2011-06-13 02:22:35
修正了错字=) – OneDeveloper 2011-06-13 02:31:16