我有以下查询:
var poll = entities.Polls.Join(entities.Descriptors, p => p.DescriptorID, q => q.ID, (p, q) => new
{
Poll = p,
Descriptor = q
}).Join(entities.Media1, p => p.Descriptor.MediaID, q => q.ID, (p, q) => new
{
Poll = p.Poll,
Descriptor = p.Descriptor,
Media = q
}).Join(entities.PollCommentSettings,p => p.Poll.ID,q => q.PollID,(p,q) => new
{
Poll = p.Poll,
Descriptor = p.Descriptor,
Media = p.Media,
CommentSettings = q
}).FirstOrDefault(p => p.Poll.ID == request.PollID);
我遇到的问题是正在加入的两个表可能没有对象,但我不在乎,并且仍想创建我的顶级对象。
如果没有匹配,两个 PollCommentSettings 和 Media1 表会导致它不返回任何内容。我需要的是最后一个对象,如果没有找到它们,只需将它们设置为 null。我相信这是这两个表上的右外连接。