【发布时间】:2018-03-02 13:58:56
【问题描述】:
使用下面的 linq 语句,我显示了一个结果列表,我加入了两个名为 AssetTransferItems 和 Memberships 的表。 Memberships 表包含一个用户列表,其中每个用户都存储为 GUID 并包含他们的用户名。
我现在想添加另一个名为 UserReceived 的列,并且像 UserAdded 一样显示用户名而不是 GUID。 UserReceived = txboxItems.UserReceived 当前显示 GUID,我正在尝试获取用户名。
我不确定如何修改 Linq 语句以从 UserReceived 的成员资格表中获取用户名。我添加了第二个加入:
join userReceived in Memberships on txboxItems.UserReceived equals userReceived.UserId
但这并没有显示结果。
var query = (from txboxItems in AssetTransferItems
join user in Memberships on txboxItems.UserAdded equals user.UserId
join userReceived in Memberships on txboxItems.UserReceived equals userReceived.UserId
where txboxItems.TransferBoxID == BoxId && txboxItems.Deleted == false
orderby txboxItems.TicketID descending
select new
{
Description = txboxItems.Description.ToString(),
DateAdded = (DateTime?) txboxItems.DateAdded.Value,
UserAdded = user.Username,
DateReceived = (DateTime?) txboxItems.DateReceived.Value,
UserReceived = userReceived.Username,
});
编辑:我更新了 linq 语句以反映我现在所拥有的。它显示了 userReceived.Username,但没有显示 UserReceived 为 null 的所有其他结果。
谢谢
【问题讨论】:
-
如果您只想使用 'userReceived.Username
? Why can't you use 'userReceived.Username做某事,就像您使用user.Username一样,为什么还要第三次加入? -
有一个错字,对不起,添加了太多次被删除..
-
那么像使用
user.Username一样使用userReceived.Username有什么不妥? -
我试过 UserReceived.Username 但结果只会在 UserReceived 不为空时显示。